模块  java.net.http
软件包  java.net.http

Interface HttpRequest.Builder

  • Enclosing class:
    HttpRequest

    public static interface HttpRequest.Builder
    HTTP requests的建设者

    实例HttpRequest.Builder是通过致电HttpRequest.newBuilder(URI)HttpRequest.newBuilder()创建的。

    构建器可用于配置每个请求状态,例如:请求URI,请求方法(除非显式设置,默认为GET),特定请求标头等。每个setter方法都会修改构建器的状态并返回相同的实例。 这些方法不同步,不应在没有外部同步的情况下从多个线程调用。 build方法每次调用时都返回一个新的HttpRequest 一旦建成HttpRequest是不可变的,并且可以多次发送。

    请注意,并非所有请求标头都可以由用户代码设置。 有些是出于安全原因而受到限制,而其他一些(例如与身份验证,重定向和Cookie管理相关的标头)可能由特定API管理,而不是通过直接用户设置标头管理。

    从以下版本开始:
    11
    • 方法详细信息

      • expectContinue

        HttpRequest.Builder expectContinue​(boolean enable)
        请求服务器在发送正文之前确认请求。 默认情况下禁用此功能。 如果启用,则在客户端发送请求正文之前,请求服务器发送错误响应或100 Continue响应。 这意味着在收到此临时响应之前,不会调用请求的请求发布者。
        参数
        enable - true如果Expect继续发送
        结果
        这个建设者
      • header

        HttpRequest.Builder header​(String name,
                                   String value)
        将给定的名称值对添加到此请求的标头集。 给定值将添加到该名称的值列表中。
        Implementation Note:
        实现可以选择限制一些头名称或值,因为HTTP客户端可以自己确定它们的值。 例如,“Content-Length”,它将由请求Publisher确定。 在这种情况下,如果IllegalArgumentException标头传递给构建器,则HttpRequest.Builder的实现可以选择抛出IllegalArgumentException
        参数
        name - 标题名称
        value - 标头值
        结果
        这个建设者
        异常
        IllegalArgumentException - 如果标头名称或值无效,请参阅 RFC 7230 section-3.2 ,或者标头名称或值受实现限制。
      • headers

        HttpRequest.Builder headers​(String... headers)
        将给定的名称值对添加到此请求的标头集。 提供的String实例必须作为标题名称和标题值进行备用。 要将多个值添加到同一名称,则必须为每个新值提供相同的名称。
        参数
        headers - 名称值对的列表
        结果
        这个建设者
        异常
        IllegalArgumentException - 如果存在奇数个参数,或者标题名称或值无效,请参阅 RFC 7230 section-3.2 ,或者实现标题名称或值为 restricted
      • GET

        HttpRequest.Builder GET()
        将此构建器的请求方法设置为GET。 这是默认值。
        结果
        这个建设者
      • POST

        HttpRequest.Builder POST​(HttpRequest.BodyPublisher bodyPublisher)
        将此构建器的请求方法设置为POST,并将其请求主体发布者设置为给定值。
        参数
        bodyPublisher - 身体出版商
        结果
        这个建设者
      • PUT

        HttpRequest.Builder PUT​(HttpRequest.BodyPublisher bodyPublisher)
        将此构建器的请求方法设置为PUT,并将其请求主体发布者设置为给定值。
        参数
        bodyPublisher - 身体出版商
        结果
        这个建设者
      • DELETE

        HttpRequest.Builder DELETE()
        将此构建器的请求方法设置为DELETE。
        结果
        这个建设者
      • method

        HttpRequest.Builder method​(String method,
                                   HttpRequest.BodyPublisher bodyPublisher)
        将此构建器的请求方法和请求主体设置为给定值。
        API Note:
        可以在不需要或不适合请求正文的情况下使用noBody请求正文发布者。 方法是否受限制是特定于实现的。 例如,某些实现可以选择限制CONNECT方法。
        参数
        method - 使用方法
        bodyPublisher - 身体出版商
        结果
        这个建设者
        异常
        IllegalArgumentException - 如果方法名称无效,请参阅 RFC 7230 section-3.1.1 ,否则该方法受实现限制。
      • copy

        HttpRequest.Builder copy()
        根据当前状态返回此Builder的精确副本。 然后,可以独立于此构建器修改新构建器。
        结果
        an exact copy of this builder