3. 基本使用

  • httpx和requests的很多API存在相似之处,我们先看下GET请求的用法:
import httpx

response = httpx.get("http://httpbin.org/get")
print(response.status_code)
print(response.headers)
print(response.text)
  • 这里我们还是请求之前的测试网站,直接使用httpx的get方法即可,用法和requests里的一模一样,将返回结果赋值为response变量,然后打印出它的status_code,headers,text等属性,运行结果如下:
200
Headers({'date': 'Sat, 19 Sep 2026 04:22:35 GMT', 'content-type': 'application/json', 'content-length': '308', 'connection': 'keep-alive', 'server': 'gunicorn/19.9.0', 'access-control-allow-origin': '*', 'access-control-allow-credentials': 'true'})
{
  "args": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate, br", 
    "Host": "httpbin.org", 
    "User-Agent": "python-httpx/0.28.1", 
    "X-Amzn-Trace-Id": "Root=1-6aae0e0b-7bc25f6c007102471cd18b33"
  }, 
  "origin": "183.212.87.222", 
  "url": "http://httpbin.org/get"
}
  • 输出结果包含三项内容
    • status_code属性对应位状态码,位为200
    • headers属性对应响应头,是一个headers对象,类似于一个字典
    • text属性对应响应体,可以看其中的User-Agent是python-httpx/0.28.1,代表我们是用httpx请求的
  • 下面换一个User-Agent再请求一次,代码如下:
import httpx
headers = {
    'User-Agent':'Mozilla/5.0'
}
response = httpx.get("http://httpbin.org/get",headers=headers)
print(response.text)
  • 这里我们换了一个User-Agent重新请求,并肩其赋值给变量headers,然后传递给headers参数,运行结果如下:
{
  "args": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate, br", 
    "Host": "httpbin.org", 
    "User-Agent": "Mozilla/5.0", 
    "X-Amzn-Trace-Id": "Root=1-6aae0f69-201b52c41920b2ff089a0537"
  }, 
  "origin": "183.212.87.212", 
  "url": "http://httpbin.org/get"
}
  • 可以发现更换后的User-Agent生效了。
    image
    image
    image
  • 基于得到的Response对象,可以使用如下属性和方法获取想要的内容。
    • status_code:状态码
    • text:响应体的文本内容
    • content:响应体的二进制内容,当前求体的目标是二进制数据(如照片)时,可以使用此属性获取
    • headers:响应头,是Headers对象,可以用像获取字典中的内容一样获取其中某个Header的值
    • json:方法,可以调用此方法将文本结果转化为JSON对象
    • 除了这些,httpx还有一些基本用法也和requests极其类似,这里不再赘述了,可以参考官方文档:https://www.python-httpx.org/quickstart/
posted @ 2026-09-19 12:36  abner_pan  阅读(9)  评论(0)    收藏  举报