- 类型参数:
-
T- 响应体类型
public interface HttpResponse<T>
一个HTTP响应。
HttpResponse不是直接创建的,而是作为发送HttpRequest的结果返回。当响应状态码和头部已经接收到,通常在响应体也完全接收到之后,HttpResponse就可用了。是否在响应体完全接收到之前就可用取决于发送HttpRequest时提供的BodyHandler。
这个类提供了访问响应状态码、头部、响应体以及对应于此响应的HttpRequest的方法。
以下是检索响应作为字符串的示例:
HttpResponse<String> response = client
.send(request, BodyHandlers.ofString());
BodyHandlers类提供了许多常见响应处理程序的实现。或者,可以使用自定义的BodyHandler实现。
- 自 JDK 版本:
- 11
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interface用于响应体的处理程序。static class实现了BodyHandler接口的各种有用处理程序,例如将响应体作为字符串处理,或将响应体流式传输到文件中。static interfaceBodySubscriber消耗响应体字节并将其转换为更高级别的Java类型。static class实现了BodySubscriber接口的各种有用订阅者,例如将响应体字节转换为字符串,或将字节流式传输到文件中。static interface推送承诺的处理程序。static interface当初始接收到响应并在处理主体之前,向BodyHandler提供的初始响应信息。 -
Method Summary
Modifier and TypeMethodDescriptionbody()返回主体。headers()返回接收到的响应头。返回包含先前中间响应(如果有)的Optional。request()返回对应于此响应的HttpRequest。返回包含此响应的有效SSLSession的Optional。int返回此响应的状态码。uri()返回接收到响应的URI。version()返回用于此响应的HTTP协议版本。
-
Method Details
-
statusCode
int statusCode()返回此响应的状态码。- 返回:
- 响应码
-
request
HttpRequest request()返回对应于此响应的HttpRequest。返回的
HttpRequest可能不是发送时提供的初始请求。例如,如果初始请求被重定向,那么此方法返回的请求将具有重定向的URI,这将与初始请求的URI不同。- 返回:
- 请求
- 参见:
-
previousResponse
Optional<HttpResponse<T>> previousResponse()返回包含先前中间响应(如果有)的Optional。中间响应是由于重定向或身份验证而接收到的响应。如果没有接收到先前响应,则返回一个空的Optional。- 返回:
- 包含HttpResponse的Optional,如果有的话。
-
headers
HttpHeaders headers()返回接收到的响应头。- 返回:
- 响应头
-
body
T body()返回主体。根据T的类型,返回的主体可能表示读取后的主体(例如byte[]、String或Path),或者可能表示用于读取主体的对象,例如InputStream。如果此
HttpResponse是从调用previousResponse()返回的,则此方法返回null- 返回:
- 主体
-
sslSession
Optional<SSLSession> sslSession()- 返回:
-
包含与响应关联的
SSLSession的Optional
-
uri
URI uri()返回接收到响应的URI。如果发生重定向,这可能与请求URI不同。- 返回:
- 响应的URI
-
version
HttpClient.Version version()返回用于此响应的HTTP协议版本。- 返回:
- HTTP协议版本
-