- 类型参数:
-
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
Modifier and TypeInterfaceDescriptionstatic interface
用于响应体的处理程序。static class
实现了BodyHandler
接口的各种有用处理程序,例如将响应体作为字符串处理,或将响应体流式传输到文件中。static interface
BodySubscriber
消耗响应体字节并将其转换为更高级别的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协议版本
-