Module bus.http

Class Request.Builder

java.lang.Object
org.miaixz.bus.http.Request.Builder
Enclosing class:
Request

public static class Request.Builder extends Object
Request 构建器,用于创建和修改 Request 实例。
  • Constructor Details

    • Builder

      public Builder()
      默认构造函数,初始化 GET 请求。
  • Method Details

    • url

      public Request.Builder url(UnoUrl url)
      设置请求的 URL。
      Parameters:
      url - UnoUrl 对象
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 url 为 null
    • url

      public Request.Builder url(String url)
      设置请求的 URL(字符串格式)。

      将 WebSocket URL(ws: 或 wss:)转换为 HTTP URL(http: 或 https:)。

      Parameters:
      url - URL 字符串
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 url 为 null
      IllegalArgumentException - 如果 URL 无效
    • url

      public Request.Builder url(URL url)
      设置请求的 URL(URL 对象)。
      Parameters:
      url - URL 对象
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 url 为 null
      IllegalArgumentException - 如果 URL 方案不是 http 或 https
    • header

      public Request.Builder header(String name, String value)
      设置指定名称的头部值,替换现有同名头部。
      Parameters:
      name - 头部名称
      value - 头部值
      Returns:
      当前 Builder 实例
    • addHeader

      public Request.Builder addHeader(String name, String value)
      添加指定名称和值的头部,保留现有同名头部。

      对于某些头部(如 Content-Length、Content-Encoding),Http 客户端可能根据请求体替换值。

      Parameters:
      name - 头部名称
      value - 头部值
      Returns:
      当前 Builder 实例
    • removeHeader

      public Request.Builder removeHeader(String name)
      移除指定名称的所有头部。
      Parameters:
      name - 头部名称
      Returns:
      当前 Builder 实例
    • headers

      public Request.Builder headers(Headers headers)
      设置所有头部,替换现有头部。
      Parameters:
      headers - Headers 对象
      Returns:
      当前 Builder 实例
    • cacheControl

      public Request.Builder cacheControl(CacheControl cacheControl)
      设置缓存控制头部。

      替换现有的 Cache-Control 头部。如果 cacheControl 无指令,移除 Cache-Control 头部。

      Parameters:
      cacheControl - CacheControl 对象
      Returns:
      当前 Builder 实例
    • get

      public Request.Builder get()
      设置为 GET 请求。
      Returns:
      当前 Builder 实例
    • head

      public Request.Builder head()
      设置为 HEAD 请求。
      Returns:
      当前 Builder 实例
    • post

      public Request.Builder post(RequestBody body)
      设置为 POST 请求。
      Parameters:
      body - 请求体
      Returns:
      当前 Builder 实例
    • delete

      public Request.Builder delete(RequestBody body)
      设置为 DELETE 请求(带请求体)。
      Parameters:
      body - 请求体
      Returns:
      当前 Builder 实例
    • delete

      public Request.Builder delete()
      设置为 DELETE 请求(无请求体)。
      Returns:
      当前 Builder 实例
    • put

      public Request.Builder put(RequestBody body)
      设置为 PUT 请求。
      Parameters:
      body - 请求体
      Returns:
      当前 Builder 实例
    • patch

      public Request.Builder patch(RequestBody body)
      设置为 PATCH 请求。
      Parameters:
      body - 请求体
      Returns:
      当前 Builder 实例
    • method

      public Request.Builder method(String method, RequestBody body)
      设置 HTTP 方法和请求体。
      Parameters:
      method - HTTP 方法
      body - 请求体(可能为 null)
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 method 为 null
      IllegalArgumentException - 如果 method 为空、请求体与方法不匹配
    • tag

      public Request.Builder tag(Object tag)
      使用 Object.class 作为键附加标签。
      Parameters:
      tag - 标签对象
      Returns:
      当前 Builder 实例
    • tag

      public <T> Request.Builder tag(Class<? super T> type, T tag)
      使用指定类型作为键附加标签。

      标签用于附加调试、计时或其他元数据,可在拦截器、事件监听器或回调中读取。 使用 null 移除指定类型的现有标签。

      Type Parameters:
      T - 标签值的类型
      Parameters:
      type - 标签类型
      tag - 标签值(可能为 null)
      Returns:
      当前 Builder 实例
      Throws:
      NullPointerException - 如果 type 为 null
    • build

      public Request build()
      构建 Request 实例。
      Returns:
      Request 对象
      Throws:
      IllegalStateException - 如果 URL 未设置