hutool.httpx_client.http_client¶
Module Contents¶
Classes¶
HTTP工具类,提供常用的HTTP操作方法 |
|
异步 HTTP 工具类,提供与 |
API¶
- class hutool.httpx_client.http_client.HttpUtil¶
HTTP工具类,提供常用的HTTP操作方法
- static is_https(url: str) bool¶
判断URL是否为HTTPS协议
- 参数:
url – 待判断的URL字符串
- 返回:
如果URL以 https:// 开头返回 True,否则返回 False
- static is_http(url: str) bool¶
判断URL是否为HTTP协议
- 参数:
url – 待判断的URL字符串
- 返回:
如果URL以 http:// 开头返回 True,否则返回 False
- static get(url: str, params: Optional[dict] = None, timeout: int = 30000, headers: Optional[dict] = None) str¶
发送GET请求并返回响应体字符串
- 参数:
url – 请求URL
params – 查询参数
timeout – 超时时间(毫秒)
headers – 请求头
- 返回:
响应体字符串
- static post(url: str, data=None, json_data=None, timeout: int = 30000, headers: Optional[dict] = None) str¶
发送POST请求并返回响应体字符串
- 参数:
url – 请求URL
data – 表单数据
json_data – JSON数据
timeout – 超时时间(毫秒)
headers – 请求头
- 返回:
响应体字符串
- static create_get(url: str) hutool.httpx_client.http_request.HttpRequest¶
创建GET请求对象
- 参数:
url – 请求URL
- 返回:
HttpRequest对象
- static create_post(url: str) hutool.httpx_client.http_request.HttpRequest¶
创建POST请求对象
- 参数:
url – 请求URL
- 返回:
HttpRequest对象
- static download_string(url: str, charset: str = 'utf-8') str¶
下载URL内容为字符串
- 参数:
url – 下载URL
charset – 字符集,默认utf-8
- 返回:
下载的字符串内容
- static download_file(url: str, dest: str) int¶
下载URL内容到文件
- 参数:
url – 下载URL
dest – 目标文件路径
- 返回:
下载的字节数
- static download_bytes(url: str) bytes¶
下载URL内容为字节数组
- 参数:
url – 下载URL
- 返回:
下载的字节数组
- static to_params(param_map: dict, charset: str = 'utf-8') str¶
将参数Map转换为URL查询字符串
- 参数:
param_map – 参数字典
charset – 字符集,默认utf-8
- 返回:
URL编码后的查询字符串,如 “key1=value1&key2=value2”
- static decode_param_map(params_str: str) Dict[str, str]¶
将URL查询字符串解码为单值参数字典
如果某个键对应多个值,只取第一个值。
- 参数:
params_str – URL查询字符串,如 “key1=value1&key2=value2”
- 返回:
参数字典,值为单个字符串
- static decode_params(params_str: str) Dict[str, List[str]]¶
将URL查询字符串解码为多值参数字典
- 参数:
params_str – URL查询字符串,如 “key=value1&key=value2”
- 返回:
参数字典,值为字符串列表
- static url_with_form(url: str, form: dict) str¶
将表单参数附加到URL上
- 参数:
url – 基础URL
form – 表单参数字典
- 返回:
附加参数后的完整URL
- static get_charset(content_type: str) str¶
从Content-Type中提取字符集
- 参数:
content_type – Content-Type头值,如 “text/html; charset=utf-8”
- 返回:
字符集名称,如 “utf-8”;如果未指定则返回 “utf-8”
- static encode_url(url_str: str) str¶
URL编码
- 参数:
url_str – 待编码的URL字符串
- 返回:
编码后的URL字符串
- static decode_url(url_str: str) str¶
URL解码
- 参数:
url_str – 待解码的URL字符串
- 返回:
解码后的URL字符串
- static download(url: str, dest=None, timeout: int = 60000) Union[int, bytes]¶
统一下载接口
如果dest为字符串路径,下载到文件并返回字节数。 如果dest为None,返回bytes。
- 参数:
url – 下载URL
dest – 目标文件路径或None
timeout – 超时时间(毫秒)
- 返回:
字节数或bytes
- static encode_params(params: dict, charset: str = 'utf-8') str¶
编码参数为URL查询字符串(to_params别名)
- 参数:
params – 参数字典
charset – 字符集
- 返回:
URL编码后的查询字符串
- static get_mime_type(content_type: str) str¶
从Content-Type获取MIME类型
- 参数:
content_type – Content-Type头值
- 返回:
MIME类型,如 ‘text/html’
- static build_basic_auth(username: str, password: str) str¶
构建Basic认证头
- 参数:
username – 用户名
password – 密码
- 返回:
Basic认证头值(如 ‘Basic dXNlcjpwYXNz’)
- static normalize_params(params: dict) dict¶
规范化参数(过滤None值)
- 参数:
params – 参数字典
- 返回:
过滤None值后的字典
- class hutool.httpx_client.http_client.AsyncHttpUtil¶
异步 HTTP 工具类,提供与
HttpUtil完全对应的异步方法。与
HttpUtil方法名一致,所有方法均为协程,需用await调用。 I/O 方法(get/post/download*)使用httpx.AsyncClient原生异步实现; 纯工具方法(is_https/to_params/encode_url/create_* 等)为薄壳,直接委托同步实现。 引入本类后通常可不再使用HttpUtil。示例:
from hutool import AsyncHttpUtil html = await AsyncHttpUtil.get("https://example.com") await AsyncHttpUtil.download_file("https://example.com/a.zip", "/tmp/a.zip")
- async static get(url: str, params: Optional[dict] = None, timeout: int = 30000, headers: Optional[dict] = None) str¶
异步发送 GET 请求并返回响应体字符串。
- 参数:
url – 请求 URL
params – 查询参数
timeout – 超时时间(毫秒)
headers – 请求头
- 返回:
响应体字符串
- async static post(url: str, data=None, json_data=None, timeout: int = 30000, headers: Optional[dict] = None) str¶
异步发送 POST 请求并返回响应体字符串。
- 参数:
url – 请求 URL
data – 表单数据
json_data – JSON 数据
timeout – 超时时间(毫秒)
headers – 请求头
- 返回:
响应体字符串
- async static download_string(url: str, charset: str = 'utf-8') str¶
异步下载 URL 内容为字符串。
- 参数:
url – 下载 URL
charset – 字符集,默认 utf-8
- 返回:
下载的字符串内容
- async static download_bytes(url: str) bytes¶
异步下载 URL 内容为字节数组。
- 参数:
url – 下载 URL
- 返回:
下载的字节数组
- async static download_file(url: str, dest: str) int¶
异步下载 URL 内容到文件。
- 参数:
url – 下载 URL
dest – 目标文件路径
- 返回:
下载的字节数
- async static download(url: str, dest=None, timeout: int = 60000) Union[int, bytes]¶
异步统一下载接口。
如果 dest 为字符串路径,下载到文件并返回字节数;如果 dest 为 None,返回 bytes。
- 参数:
url – 下载 URL
dest – 目标文件路径或 None
timeout – 超时时间(毫秒)
- 返回:
字节数或 bytes
- async static is_https(url: str) bool¶
判断 URL 是否为 HTTPS。
- async static is_http(url: str) bool¶
判断 URL 是否为 HTTP。
- async static create_get(url: str) hutool.httpx_client.http_request.HttpRequest¶
创建 GET 请求对象(返回同步
HttpRequest,可链式配置后用AsyncHttpRequest执行)。
- async static create_post(url: str) hutool.httpx_client.http_request.HttpRequest¶
创建 POST 请求对象。
- async static to_params(param_map: dict, charset: str = 'utf-8') str¶
将参数 Map 转换为 URL 查询字符串。
- async static encode_params(params: dict, charset: str = 'utf-8') str¶
编码参数为 URL 查询字符串(to_params 别名)。
- async static decode_param_map(params_str: str) Dict[str, str]¶
将 URL 查询字符串解码为单值参数字典。
- async static decode_params(params_str: str) Dict[str, List[str]]¶
将 URL 查询字符串解码为多值参数字典。
- async static url_with_form(url: str, form: dict) str¶
将表单参数附加到 URL 上。
- async static get_charset(content_type: str) str¶
从 Content-Type 中提取字符集。
- async static encode_url(url_str: str) str¶
URL 编码。
- async static decode_url(url_str: str) str¶
URL 解码。
- async static get_mime_type(content_type: str) str¶
从 Content-Type 获取 MIME 类型。
- async static build_basic_auth(username: str, password: str) str¶
构建 Basic 认证头。
- async static normalize_params(params: dict) dict¶
规范化参数(过滤 None 值)。