4. Client对象

  • httpx中有一些基本的API和requests中的非常相似,但也有一些API是不相似的,例如httpx中有一个client对象,就可以和requests中的Session对象类比学习。
  • 下面我们介绍Client对象的使用。官方比较推荐的使用方式是with as语句,示例如下:
import httpx

with httpx.Client() as client:
    response = client.get("http://httpbin.org/get")
    print(response)

运行结果如下:
<Response [200 OK]>

  • 这个用法等价于:
import httpx

client = httpx.Client()
try:
    response = client.get("http://www.baidu.com")
    print(response)
finally:
    client.close()
  • 两种方式的运行结果是一样的,只不过这里需要我们在最后显示地调用close方法来关闭Client对象。
  • 另外,在声明Client对象时可以指定一些参数,例如headers,这样使用该对象发起的请求都会默认带上这些参数配置,如下示例:
import httpx
url = "http://httpbin.org/get"
headers = {'User-Agent':'Mozilla/5.0'}
with httpx.Client(headers=headers) as client:
    response = client.get(url)
    print(response.json()['headers']['User-Agent'])
  • 这里我们声明了一个headers变量,内容为User-Agent属性,然后将此变量传递给headers参数初始化了一个Client对象,并赋值给client变量,最后用client变量请求了测试网站,并打印返回结果中User-Agent的内容:
    Mozilla/5.0
  • 可以看到,headers成功赋值了
  • 关于Client对象的更多高级用法可以参考官方文档:https://www.python-httpx.org/advanced/
posted @ 2026-09-20 19:59  abner_pan  阅读(3)  评论(0)    收藏  举报