reqwest HTTP 客户端库

reqwest HTTP 客户端库

reqwest HTTP 客户端库

功能

reqwest(url) 创建同步 HTTP 请求构建器,支持 method、header、cookie、cookie_store、body、json、form、multipart、timeout、query、proxy、redirect_policy 和 send。

API 列表

API说明
reqwest.method设置 HTTP 请求方法。
reqwest.header设置一个或一组请求头。
reqwest.cookie设置 Cookie 请求头。
reqwest.cookie_store启用或关闭当前请求客户端的 Cookie 存储。
reqwest.body设置字符串请求体。
reqwest.json设置 JSON 请求体。
reqwest.form设置 application/x-www-form-urlencoded 表单请求体。
reqwest.multipart设置 multipart/form-data 请求体。
reqwest.timeout设置请求超时时间。
reqwest.query追加 URL 查询参数。
reqwest.proxy设置 HTTP/HTTPS 代理。
reqwest.redirect_policy设置重定向策略。
reqwest.send同步发送 HTTP 请求并返回响应对象。

示例

注意事项

  • 当前 VM 是同步模型,send() 会同步等待 HTTP 请求完成;底层复用进程级 I/O runtime。
  • 默认启用 HTTP client 池,按代理和重定向策略分组复用;池状态可通过 BT.stats().http 查看。
  • cookie_store(true) 只作用于本次 send() 及其重定向链路,不进入共享 client 池,避免跨请求 Cookie 污染。
  • body、json、form、multipart 都会设置请求体;同一请求中最后一次设置的请求体生效。

HTTP client 池默认配置:

环境变量默认值说明
BT_HTTP_CLIENT_POOLtrue是否启用 HTTP client 池。
BT_HTTP_CLIENT_POOL_LIMIT32,最大 1024最多保留的 client 配置分组数量。
BT_HTTP_CLIENT_IDLE_TTL_MS300000client 空闲保留时间,单位毫秒;0 表示不按空闲时间淘汰。
BT_HTTP_SLOW_MS0慢 HTTP 调用日志阈值,单位毫秒;0 表示关闭。