hutool.httpx_client.http_request

Module Contents

Classes

HttpRequest

HTTP请求对象,支持链式调用

API

class hutool.httpx_client.http_request.HttpRequest(url: str, method: str = 'GET')

HTTP请求对象,支持链式调用

示例:

response = (HttpRequest.get("https://example.com")
    .header("Accept", "application/json")
    .timeout(5000)
    .execute())

Initialization

构造HTTP请求

参数:
  • url – 请求URL

  • method – HTTP方法,默认GET

classmethod get(url: str) hutool.httpx_client.http_request.HttpRequest

创建GET请求

参数:

url – 请求URL

返回:

HttpRequest实例

classmethod post(url: str) hutool.httpx_client.http_request.HttpRequest

创建POST请求

参数:

url – 请求URL

返回:

HttpRequest实例

method(method: str) hutool.httpx_client.http_request.HttpRequest

设置HTTP方法

参数:

method – HTTP方法名,如GET、POST、PUT、DELETE等

返回:

当前实例,支持链式调用

header(name: str, value: str) hutool.httpx_client.http_request.HttpRequest

设置单个请求头

参数:
  • name – 请求头名称

  • value – 请求头值

返回:

当前实例,支持链式调用

headers(headers: dict) hutool.httpx_client.http_request.HttpRequest

批量设置请求头

参数:

headers – 请求头字典

返回:

当前实例,支持链式调用

cookie(cookie: str) hutool.httpx_client.http_request.HttpRequest

设置Cookie

支持格式: “name=value” 或 “name1=value1; name2=value2”

参数:

cookie – Cookie字符串

返回:

当前实例,支持链式调用

form(key: str, value: Optional[str] = None) hutool.httpx_client.http_request.HttpRequest

添加表单参数

参数:
  • key – 参数名

  • value – 参数值

返回:

当前实例,支持链式调用

body(body: str) hutool.httpx_client.http_request.HttpRequest

设置请求体

参数:

body – 请求体字符串

返回:

当前实例,支持链式调用

json(json_data: Any) hutool.httpx_client.http_request.HttpRequest

设置JSON请求体

参数:

json_data – JSON可序列化的数据

返回:

当前实例,支持链式调用

timeout(timeout: int) hutool.httpx_client.http_request.HttpRequest

设置超时时间(毫秒)

参数:

timeout – 超时时间,单位毫秒

返回:

当前实例,支持链式调用

charset(charset: str) hutool.httpx_client.http_request.HttpRequest

设置字符集

参数:

charset – 字符集名称,如 utf-8、gbk 等

返回:

当前实例,支持链式调用

follow_redirects(is_follow: bool) hutool.httpx_client.http_request.HttpRequest

设置是否跟随重定向

参数:

is_follow – 是否跟随重定向

返回:

当前实例,支持链式调用

execute() hutool.httpx_client.http_response.HttpResponse

执行HTTP请求

返回:

HttpResponse响应对象

抛出:
  • httpx.HTTPStatusError – 当响应状态码表示错误时

  • httpx.RequestError – 当请求发生网络错误时

classmethod head(url: str) hutool.httpx_client.http_request.HttpRequest

创建HEAD请求

参数:

url – 请求URL

返回:

HttpRequest实例

classmethod put(url: str) hutool.httpx_client.http_request.HttpRequest

创建PUT请求

参数:

url – 请求URL

返回:

HttpRequest实例

classmethod patch(url: str) hutool.httpx_client.http_request.HttpRequest

创建PATCH请求

参数:

url – 请求URL

返回:

HttpRequest实例

classmethod delete(url: str) hutool.httpx_client.http_request.HttpRequest

创建DELETE请求

参数:

url – 请求URL

返回:

HttpRequest实例

classmethod trace(url: str) hutool.httpx_client.http_request.HttpRequest

创建TRACE请求

参数:

url – 请求URL

返回:

HttpRequest实例

classmethod options(url: str) hutool.httpx_client.http_request.HttpRequest

创建OPTIONS请求

参数:

url – 请求URL

返回:

HttpRequest实例

content_type(ct: str) hutool.httpx_client.http_request.HttpRequest

设置Content-Type头

参数:

ct – Content-Type值

返回:

当前实例,支持链式调用

keep_alive(keep: bool) hutool.httpx_client.http_request.HttpRequest

设置Connection头

参数:

keep – 是否保持连接

返回:

当前实例,支持链式调用

basic_auth(username: str, password: str) hutool.httpx_client.http_request.HttpRequest

设置Basic认证

参数:
  • username – 用户名

  • password – 密码

返回:

当前实例,支持链式调用

bearer_auth(token: str) hutool.httpx_client.http_request.HttpRequest

设置Bearer Token认证

参数:

token – Bearer Token

返回:

当前实例,支持链式调用

body_bytes(data: bytes) hutool.httpx_client.http_request.HttpRequest

设置字节请求体

参数:

data – 字节数据

返回:

当前实例,支持链式调用

params(params: dict) hutool.httpx_client.http_request.HttpRequest

设置URL查询参数

参数:

params – 参数字典

返回:

当前实例,支持链式调用

form_file(name: str, file_bytes: bytes, filename: str = 'file') hutool.httpx_client.http_request.HttpRequest

添加文件上传字段(记录信息供execute使用)

参数:
  • name – 字段名

  • file_bytes – 文件字节数据

  • filename – 文件名

返回:

当前实例,支持链式调用

set_follow_redirects(follow: bool) hutool.httpx_client.http_request.HttpRequest

设置是否跟随重定向(与 follow_redirects 相同)。

参数:

follow – 是否跟随重定向

返回:

当前实例,支持链式调用

设置重定向时是否携带 Cookie。

参数:

follow – 是否携带 Cookie

返回:

当前实例,支持链式调用

set_max_redirect_count(count: int) hutool.httpx_client.http_request.HttpRequest

设置最大重定向次数。

参数:

count – 最大重定向次数

返回:

当前实例,支持链式调用

set_http_proxy(http_proxy: str) hutool.httpx_client.http_request.HttpRequest

设置 HTTP 代理。

参数:

http_proxy – 代理地址,如 ‘http://proxy:8080

返回:

当前实例,支持链式调用

set_connection_timeout(timeout_ms: int) hutool.httpx_client.http_request.HttpRequest

设置连接超时时间(毫秒)。

参数:

timeout_ms – 连接超时毫秒数

返回:

当前实例,支持链式调用

set_read_timeout(timeout_ms: int) hutool.httpx_client.http_request.HttpRequest

设置读取超时时间(毫秒)。

参数:

timeout_ms – 读取超时毫秒数

返回:

当前实例,支持链式调用