- java.lang.Object
-
- java.net.http.HttpRequest
-
public abstract class HttpRequest extends Object
HTTP请求。HttpRequest
实例通过HttpRequest
builder构建 。 从newBuilder
方法之一获得HttpRequest
构建器。 可以设置请求URI
,标题和正文。 请求体通过提供BodyPublisher
供给的一个POST
,PUT
或method
方法。 在构建器中设置了所有必需参数后,build
将返回HttpRequest
。 可以多次复制和修改构建器,以便构建在某些参数方面不同的多个相关请求。以下是将响应主体打印为String的GET请求示例:
HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("http://foo.com/")) .build(); client.sendAsync(request, BodyHandlers.ofString()) .thenApply(HttpResponse::body) .thenAccept(System.out::println) .join();
BodyPublishers
类提供了许多常见发布者的实现。 或者,可以使用自定义BodyPublisher
实现。- 从以下版本开始:
- 11
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 static interface
HttpRequest.BodyPublisher
BodyPublisher
将高级Java对象转换为适合作为请求主体发送的字节缓冲区流。static class
HttpRequest.BodyPublishers
实现各种有用发布者的BodyPublisher
的实现,例如从String或文件发布请求主体。static interface
HttpRequest.Builder
-
构造方法摘要
构造方法 变量 构造器 描述 protected
HttpRequest()
创建一个HttpRequest。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 abstract Optional<HttpRequest.BodyPublisher>
bodyPublisher()
返回包含此请求中设置的Optional
的Optional 。boolean
equals(Object obj)
测试此HTTP请求实例是否与给定对象相等。abstract boolean
expectContinue()
返回此请求的 expect continue设置。int
hashCode()
计算此HTTP请求实例的哈希码。abstract HttpHeaders
headers()
此请求已(或将要)发送的(用户可访问的)请求标头。abstract String
method()
返回此请求的请求方法。static HttpRequest.Builder
newBuilder()
创建HttpRequest
构建器。static HttpRequest.Builder
newBuilder(URI uri)
使用给定的URI创建HttpRequest
构建器。abstract Optional<Duration>
timeout()
返回包含此请求的超时持续时间的Optional
。abstract URI
uri()
返回此请求的URI
。abstract Optional<HttpClient.Version>
version()
返回Optional
其中包含将为此HttpRequest
请求的HTTP协议版本。
-
-
-
方法详细信息
-
newBuilder
public static HttpRequest.Builder newBuilder(URI uri)
使用给定的URI创建HttpRequest
构建器。- 参数
-
uri
- 请求URI - 结果
- 一个新的请求构建器
- 异常
-
IllegalArgumentException
- 如果不支持URI方案。
-
newBuilder
public static HttpRequest.Builder newBuilder()
创建HttpRequest
构建器。- 结果
- 一个新的请求构建器
-
bodyPublisher
public abstract Optional<HttpRequest.BodyPublisher> bodyPublisher()
返回包含此请求中设置的Optional
的Optional 。 如果请求的构建器中未设置BodyPublisher
,则Optional
为空。- 结果
-
一个
Optional
包含此请求的BodyPublisher
-
method
public abstract String method()
返回此请求的请求方法。 如果未明确设置,则任何请求的默认方法为“GET”。- 结果
- 这个请求的方法
-
timeout
public abstract Optional<Duration> timeout()
返回包含此请求的超时持续时间的Optional
。 如果未在请求的构建器中设置超时持续时间,则Optional
为空。- 结果
-
包含此请求的超时持续时间的
Optional
-
expectContinue
public abstract boolean expectContinue()
返回此请求的 expect continue设置。- 结果
- 此请求期望继续设置
-
uri
public abstract URI uri()
返回此请求的URI
。- 结果
- 此请求的URI
-
version
public abstract Optional<HttpClient.Version> version()
返回Optional
其中包含将为此HttpRequest
请求的HTTP协议版本。 如果未在请求的构建器中设置版本,则Optional
为空。 在这种情况下,请求的版本将是发送HttpClient
的版本 。 应查询相应的HttpResponse
以确定实际使用的版本。- 结果
- HTTP协议版本
-
headers
public abstract HttpHeaders headers()
此请求已(或将要)发送的(用户可访问的)请求标头。- 结果
- 这个请求的HttpHeaders
-
equals
public final boolean equals(Object obj)
测试此HTTP请求实例是否与给定对象相等。如果给定对象不是
HttpRequest
则此方法返回false
。 如果两个HTTP请求的URI,方法和头字段都相等,则它们是相等的。该方法满足
Object.equals
方法的一般合同。- 重写:
-
equals
在类Object
- 参数
-
obj
- 要与此对象进行比较的对象 - 结果
-
true
当且仅当给定对象是HttpRequest
等于此HTTP请求时 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public final int hashCode()
计算此HTTP请求实例的哈希码。哈希码基于HTTP请求的URI,方法和标头组件,并且满足
Object.hashCode
方法的常规协定。- 重写:
-
hashCode
类Object
- 结果
- 此HTTP请求的哈希码值
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-