前言
在 Python 中,访问网络资源最有名的库就是 requests、aiohttp 和 httpx。一般情况下,requests 只能发送同步请求;aiohttp 只能发送异步请求;httpx 既能发送同步请求,又能发送异步请求。
下面,就着重介绍一下 httpx 的使用方法。
安装
使用 pip 安装 httpx:
pip install httpx
当然了,httpx 也可以使用命令行操作。不过,需要按如下命令安装。
pip install 'httpx[cli]'

命令行测试发送请求:

快速入门
发起 GET 请求
直接用 get 方法,如下:
import httpx
r = httpx.get('https://httpbin.org/get')
print(r.status_code) #状态
print(r.text) #内容
对于带参数的 URL,传入一个 dict 作为 params 参数,如下:
import httpx
r = httpx.get('https://httpbin.org/get', params={'q': 'python', 'cat': '1001'})
print(r.url) #实际请求的URL
print(r.text)
对于特定类型的响应,例如 JSON,可以直接获取,如下:
r = httpx.get('https://httpbin.org/get')
r.json()
# {'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': ...
对于非文本响应,响应内容也可以以字节的形式访问,如下:
>>> r.content
b'<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>...'
添加 Headers
需要传入 HTTP Header 时,我们传入一个 dict 作为 headers 参数,如下:
r = httpx.get('https://www.baidu.com/', headers={'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'})
获取响应头,如下:
r.headers
# {Content-Type': 'text/html; charset=utf-8', 'Transfer-Encoding': 'chunked', 'Content-Encoding': 'gzip', ...}
r.headers['Content-Type']
# 'text/html; charset=utf-8'
发起 POST 请求
要发送 POST 请求,只需要把 get()方法变

本文介绍了Python的下一代HTTP客户端HTTPX,它既支持同步也支持异步请求。内容涵盖了HTTPX的安装、基本用法如GET和POST请求、添加Headers、Cookies、超时设置等,还涉及高级特性如流媒体响应、代理设置、异步支持和下载进度监控。HTTPX提供了丰富的功能,是替代requests和aiohttp的理想选择。
最低0.47元/天 解锁文章
118

被折叠的 条评论
为什么被折叠?



