¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, DreamLu All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: DreamLu 墿¥æ¢¦ (596392912@qq.com) |
| | | */ |
| | | package org.springblade.core.http; |
| | | |
| | | import com.fasterxml.jackson.core.type.TypeReference; |
| | | import com.fasterxml.jackson.databind.JsonNode; |
| | | import okhttp3.*; |
| | | |
| | | import javax.annotation.Nullable; |
| | | import java.io.File; |
| | | import java.io.InputStream; |
| | | import java.nio.file.Path; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.function.Consumer; |
| | | |
| | | /** |
| | | * ç¸åºæ¥å£ |
| | | * |
| | | * @author L.cm |
| | | */ |
| | | public interface ResponseSpec { |
| | | |
| | | /** |
| | | * Returns the HTTP code. |
| | | * |
| | | * @return code |
| | | */ |
| | | int code(); |
| | | |
| | | /** |
| | | * Returns the HTTP status message. |
| | | * |
| | | * @return message |
| | | */ |
| | | String message(); |
| | | |
| | | /** |
| | | * Returns the HTTP isSuccessful. |
| | | * |
| | | * @return boolean |
| | | */ |
| | | default boolean isOk() { |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * Returns the is Redirect. |
| | | * |
| | | * @return is Redirect |
| | | */ |
| | | boolean isRedirect(); |
| | | |
| | | /** |
| | | * Returns the Headers. |
| | | * |
| | | * @return Headers |
| | | */ |
| | | Headers headers(); |
| | | |
| | | /** |
| | | * Headers Consumer. |
| | | * |
| | | * @param consumer Consumer |
| | | * @return Headers |
| | | */ |
| | | default ResponseSpec headers(Consumer<Headers> consumer) { |
| | | consumer.accept(this.headers()); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * Returns the Cookies. |
| | | * |
| | | * @return Cookie List |
| | | */ |
| | | List<Cookie> cookies(); |
| | | |
| | | /** |
| | | * è¯»åæ¶è´¹ cookie |
| | | * |
| | | * @param consumer Consumer |
| | | * @return ResponseSpec |
| | | */ |
| | | default ResponseSpec cookies(Consumer<List<Cookie>> consumer) { |
| | | consumer.accept(this.cookies()); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * Returns body String. |
| | | * |
| | | * @return body String |
| | | */ |
| | | String asString(); |
| | | |
| | | /** |
| | | * Returns body to byte arrays. |
| | | * |
| | | * @return byte arrays |
| | | */ |
| | | byte[] asBytes(); |
| | | |
| | | /** |
| | | * Returns body to InputStream. |
| | | * |
| | | * @return InputStream |
| | | */ |
| | | InputStream asStream(); |
| | | |
| | | /** |
| | | * Returns body to JsonNode. |
| | | * |
| | | * @return JsonNode |
| | | */ |
| | | JsonNode asJsonNode(); |
| | | |
| | | /** |
| | | * Returns body to Object. |
| | | * |
| | | * @param valueType value value type |
| | | * @return Object |
| | | */ |
| | | @Nullable |
| | | <T> T asValue(Class<T> valueType); |
| | | |
| | | /** |
| | | * Returns body to Object. |
| | | * |
| | | * @param typeReference value Type Reference |
| | | * @return Object |
| | | */ |
| | | @Nullable |
| | | <T> T asValue(TypeReference<T> typeReference); |
| | | |
| | | /** |
| | | * Returns body to List. |
| | | * |
| | | * @param valueType value type |
| | | * @return List |
| | | */ |
| | | <T> List<T> asList(Class<T> valueType); |
| | | |
| | | /** |
| | | * Returns body to Map. |
| | | * |
| | | * @param keyClass key type |
| | | * @param valueType value type |
| | | * @return Map |
| | | */ |
| | | <K, V> Map<K, V> asMap(Class<?> keyClass, Class<?> valueType); |
| | | |
| | | /** |
| | | * Returns body to Map. |
| | | * |
| | | * @param valueType value ç±»å |
| | | * @return Map |
| | | */ |
| | | <V> Map<String, V> asMap(Class<?> valueType); |
| | | |
| | | /** |
| | | * å° xmlãheml 转æå¯¹è±¡ |
| | | * |
| | | * @param valueType 对象类 |
| | | * @param <T> æ³å |
| | | * @return 对象 |
| | | */ |
| | | <T> T asDomValue(Class<T> valueType); |
| | | |
| | | /** |
| | | * å° xmlãheml 转æå¯¹è±¡ |
| | | * |
| | | * @param valueType 对象类 |
| | | * @param <T> æ³å |
| | | * @return 对象éå |
| | | */ |
| | | <T> List<T> asDomList(Class<T> valueType); |
| | | |
| | | /** |
| | | * toFile. |
| | | * |
| | | * @param file File |
| | | */ |
| | | File toFile(File file); |
| | | |
| | | /** |
| | | * toFile. |
| | | * |
| | | * @param path Path |
| | | */ |
| | | Path toFile(Path path); |
| | | |
| | | /** |
| | | * Returns contentType. |
| | | * |
| | | * @return contentType |
| | | */ |
| | | @Nullable |
| | | MediaType contentType(); |
| | | |
| | | /** |
| | | * Returns contentLength. |
| | | * |
| | | * @return contentLength |
| | | */ |
| | | long contentLength(); |
| | | |
| | | /** |
| | | * Returns rawRequest. |
| | | * |
| | | * @return Request |
| | | */ |
| | | Request rawRequest(); |
| | | |
| | | /** |
| | | * rawRequest Consumer. |
| | | * |
| | | * @param consumer Consumer |
| | | * @return ResponseSpec |
| | | */ |
| | | @Nullable |
| | | default ResponseSpec rawRequest(Consumer<Request> consumer) { |
| | | consumer.accept(this.rawRequest()); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * Returns rawResponse. |
| | | * |
| | | * @return Response |
| | | */ |
| | | Response rawResponse(); |
| | | |
| | | /** |
| | | * rawResponse Consumer. |
| | | * |
| | | * @param consumer Consumer |
| | | * @return Response |
| | | */ |
| | | default ResponseSpec rawResponse(Consumer<Response> consumer) { |
| | | consumer.accept(this.rawResponse()); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * Returns rawBody. |
| | | * |
| | | * @return ResponseBody |
| | | */ |
| | | @Nullable |
| | | ResponseBody rawBody(); |
| | | |
| | | /** |
| | | * rawBody Consumer. |
| | | * |
| | | * @param consumer Consumer |
| | | * @return ResponseBody |
| | | */ |
| | | @Nullable |
| | | default ResponseSpec rawBody(Consumer<ResponseBody> consumer) { |
| | | consumer.accept(this.rawBody()); |
| | | return this; |
| | | } |
| | | |
| | | } |