All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.dreamlu.mica.http.ResponseSpec Maven / Gradle / Ivy

There is a newer version: 3.3.2
Show newest version
/*
 * Copyright (c) 2019-2029, Dreamlu ([email protected] & www.dreamlu.net).
 * 

* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *

* http://www.gnu.org/licenses/lgpl.html *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.dreamlu.mica.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 consumer) { consumer.accept(this.headers()); return this; } /** * Returns the Cookies. * * @return Cookie List */ List cookies(); /** * 读取消费 cookie * * @param consumer Consumer * @return ResponseSpec */ default ResponseSpec cookies(Consumer> 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 asValue(Class valueType); /** * Returns body to Object. * * @param typeReference value Type Reference * @return Object */ @Nullable T asValue(TypeReference typeReference); /** * Returns body to List. * * @param valueType value type * @return List */ List asList(Class valueType); /** * Returns body to Map. * * @param keyClass key type * @param valueType value type * @return Map */ Map asMap(Class keyClass, Class valueType); /** * Returns body to Map. * * @param valueType value 类型 * @return Map */ Map asMap(Class 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 consumer) { consumer.accept(this.rawRequest()); return this; } /** * Returns rawResponse. * * @return Response */ Response rawResponse(); /** * rawResponse Consumer. * * @param consumer Consumer * @return Response */ default ResponseSpec rawResponse(Consumer 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 consumer) { consumer.accept(this.rawBody()); return this; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy