- java.lang.Object
-
- java.net.http.HttpRequest
-
public abstract class HttpRequest extends Object
HTTP请求。HttpRequest实例通过HttpRequestbuilder构建 。 从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 interfaceHttpRequest.BodyPublisherBodyPublisher将高级Java对象转换为适合作为请求主体发送的字节缓冲区流。static classHttpRequest.BodyPublishers实现各种有用发布者的BodyPublisher的实现,例如从String或文件发布请求主体。static interfaceHttpRequest.Builder
-
构造方法摘要
构造方法 变量 构造器 描述 protectedHttpRequest()创建一个HttpRequest。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 abstract Optional<HttpRequest.BodyPublisher>bodyPublisher()返回包含此请求中设置的Optional的Optional 。booleanequals(Object obj)测试此HTTP请求实例是否与给定对象相等。abstract booleanexpectContinue()返回此请求的 expect continue设置。inthashCode()计算此HTTP请求实例的哈希码。abstract HttpHeadersheaders()此请求已(或将要)发送的(用户可访问的)请求标头。abstract Stringmethod()返回此请求的请求方法。static HttpRequest.BuildernewBuilder()创建HttpRequest构建器。static HttpRequest.BuildernewBuilder(URI uri)使用给定的URI创建HttpRequest构建器。abstract Optional<Duration>timeout()返回包含此请求的超时持续时间的Optional。abstract URIuri()返回此请求的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)
-
-