Python httpx库入门指南

Httpx 是一个用于发送 HTTP 请求的 Python 库,它提供了简单易用的 API,可以轻松地发送 GET、POST、PUT、DELETE 等请求,并接收响应。下面是 Httpx 的入门指南:

  1. 安装 Httpx

在命令行中输入以下命令安装 Httpx:

复制代码
pip install httpx
  1. 导入 Httpx

在 Python 脚本中导入 Httpx:

复制代码
import httpx
  1. 发送 GET 请求

使用 Httpx 发送 GET 请求的示例代码:

复制代码
response = httpx.get('https://api.example.com/data')
print(response.text)

在上面的代码中,我们使用 `httpx.get()` 方法发送一个 GET 请求,并将响应存储在 `response` 变量中。然后,我们使用 `response.text` 属性打印响应文本。

  1. 发送 POST 请求

使用 Httpx 发送 POST 请求的示例代码:

复制代码
response = httpx.post('https://api.example.com/data', data={'key': 'value'})
print(response.text)

在上面的代码中,我们使用 `httpx.post()` 方法发送一个 POST 请求,并将要发送的数据作为字典传递给 `data` 参数。然后,我们将响应存储在 `response` 变量中,并使用 `response.text` 属性打印响应文本。

  1. 设置请求头和请求体

使用 Httpx 设置请求头和请求体的示例代码:

复制代码
headers = {'Content-Type': 'application/json'}
body = {'key': 'value'}
response = httpx.post('https://api.example.com/data', headers=headers, json=body)
print(response.text)

在上面的代码中,我们使用 `headers` 参数设置请求头,使用 `json` 参数设置请求体。然后,我们将响应存储在 `response` 变量中,并使用 `response.text` 属性打印响应文本。

  1. 处理异常情况

使用 Httpx 处理异常情况的示例代码:

复制代码
try:
    response = httpx.get('https://api.example.com/data')
    print(response.text)
except httpx.HTTPStatusError as err:
    print(f"HTTP error occurred: {err}")
except httpx.RequestError as err:
    print(f"Request error occurred: {err}")
  1. 定制请求超时

使用 Httpx 定制请求超时的示例代码:

复制代码
response = httpx.get('https://api.example.com/data', timeout=10)
print(response.text)

在上面的代码中,我们使用 `timeout` 参数设置请求超时时间为 10 秒。然后,我们将响应存储在 `response` 变量中,并使用 `response.text` 属性打印响应文本。

  1. 使用会话对象

使用 Httpx 的会话对象的示例代码:

复制代码
with httpx.Client() as session:
    response = session.get('https://api.example.com/data')
    print(response.text)

在上面的代码中,我们使用 `httpx.Client()` 创建一个会话对象,并使用 `with` 语句管理会话对象的生命周期。然后,我们使用会话对象发送 GET 请求,并将响应存储在 `response` 变量中。最后,我们使用 `response.text` 属性打印响应文本。

这些是 Httpx 的一些基本用法和示例代码。通过这些示例代码,您可以快速上手 Httpx 并发送各种 HTTP 请求。

相关推荐
师夷长技以自愈13 分钟前
手搓 AI Agent 第 7 篇:菜做砸了别硬炒——错误分类 + 双账本熔断
人工智能·python
用户9562562542923 分钟前
15 分钟社媒简报 Agent:我只用了搜索和模型两步
python·api
Dumbness26 分钟前
关键词回复里写了 {订单号},群机器人整条消息都炸了
python·微信
调接口的阿光27 分钟前
调用对话接口时输出被截断怎么办:先看 finish_reason,再决定是续写一次、缩小范围,还是换成更短的格式(Python)
人工智能·python
Cooper2539 分钟前
单文件 Flask 跑通微信服务器校验:先跑通再谈工程化
python·flask
Cooper2540 分钟前
三源热榜去重加 AI 摘要:URL 唯一键踩出的三个坑
前端·python
用户40199255686143 分钟前
多源异构 B2B 公开需求信号去重与企业实体证据链存储设计(64-bit SimHash 分桶 + Jaccard)
python
aifannihao1 小时前
GitHub Actions 锁文件实测:6 个 uses 只锁住 2 个
python·ci/cd·标准库·供应链安全·github actions
2601_967980111 小时前
使用gensim处理文本(1)语料库与词向量空间
python·自然语言处理·gensim·词向量·文本分析
starzy19902 小时前
深入理解Scala隐式值:编译期自动装配
开发语言·后端·scala