HttpClientRequest

用于构建和配置单个 HTTP 请求的构建器接口。

HttpClient 的请求方法(如 get, post, request)的 requestBuilder lambda 中, 你将获得此接口的实例,用以精细化控制请求的各个方面。

Author

M8Test, [email protected], https://m8test.com

Functions

Link copied to clipboard
abstract fun addCookie(cookie: HttpCookie.() -> Unit)

为当前请求添加一个 Cookie。

Link copied to clipboard
abstract fun addHeader(name: String, value: String)

为当前请求添加一个 HTTP 头部。 如果已存在同名的头部,则会追加一个新的值,而不是覆盖。

Link copied to clipboard
abstract fun setBody(body: Any)

设置通用的请求体。 客户端会根据 body 的实际类型(如 String, ByteArray)来尝试推断 Content-Type

Link copied to clipboard
abstract fun setContentType(type: (ContentTypes) -> ContentType)

明确设置请求的 Content-Type 头部。

Link copied to clipboard
abstract fun setJsonBody(body: String)

将请求体设置为一个 JSON 字符串,并自动将 Content-Type 设置为 application/json

Link copied to clipboard
abstract fun setMethod(method: (HttpMethods) -> HttpMethod)

设置请求的 HTTP 方法(GET, POST, PUT 等)。

Link copied to clipboard
abstract fun setMultipartBody(multipartBuilder: HttpClientMultipart.() -> Unit)

将请求体设置为 multipart/form-data 格式,并自动设置相应的 Content-Type

Link copied to clipboard
abstract fun setOnDownload(listener: (bytesSentTotal: Long, contentLength: Long?) -> Unit)

为响应的下载过程注册一个进度监听器。

Link copied to clipboard
abstract fun setOnUpload(listener: (bytesSentTotal: Long, contentLength: Long?) -> Unit)

为请求的上传过程注册一个进度监听器。

Link copied to clipboard
abstract fun setTimeout(timeout: HttpTimeoutConfig.() -> Unit)

配置当前请求的超时设置,这将覆盖客户端的全局超时配置。

Link copied to clipboard
abstract fun setUrl(urlBuilder: URLBuilder.(URLBuilder) -> Unit)

以编程方式修改请求的 URL。

Link copied to clipboard
abstract fun setUrlencodedBody(urlencodedBodyJson: Map<String, String>)

将请求体设置为 x-www-form-urlencoded 格式,并自动设置相应的 Content-Type

Link copied to clipboard
abstract fun setUserAgent(agent: String)

设置请求的 User-Agent 头部。

Link copied to clipboard

设置请求体内容为 WriteChannelContent, 一般用于上传大文件