一、安装
httpx是Python新一代的网络请求库
httpx与 requests 库的基本使用方法几乎是一模一样的
基于Python3的功能齐全的http请求模块
既能发送同步请求,也能发送异步请求
支持HTTP/1.1和HTTP/2
支持直接向WSGI应用程序或者ASGI应用程序发送请求
pip install httpx
二、请求类型
import httpx
httpx.get('https://www.baidu.com')
httpx.post('https://www.baidu.com')
httpx.put('https://www.baidu.com')
httpx.delete('https://www.baidu.com')
httpx.head('https://www.baidu.com')
httpx.options('https://www.baidu.com')
三、带参数请求
import httpxdata = https://www.it610.com/article/{'name': 'autofelix',
'age': 25
}response = httpx.get('https://www.baidu.com', params=data)
print(response.url)
print(response.text)
四、自定义 headers
import httpxheaders = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1;
WOW64;
Trident/7.0;
rv:11.0) like Gecko'
}
response =httpx.get('https://www.baidu.com', headers=headers)
print(response.text)
五、请求的属性
import httpxresponse = httpx.get('https://www.baidu.com')# 响应状态码
response.status_code
# 响应头
response.headers
# 响应cookie
response.cookies
# 请求url
response.url
# 历史记录
response.history
六、使用client发送请求
import httpxwith httpx.Client() as client:
response = client.get('https://www.baidu.com')
print(response.text)
七、HTTP代理
import httpxproxies= {
'http': 'http://127.0.0.1:9999',
'https': 'http://127.0.0.1:8888'
}with httpx.Client(proxies=proxies) as client:
response = client.get('https://www.baidu.com')
print(response)
八、超时处理
import httpx# 普通请求超时处理
httpx.get('https://www.baidu.com', timeout=10.0)# 普通请求关闭超时处理
httpx.get('https://www.baidu.com', timeout=None)# client实例超时处理
with httpx.Client() as client:
client.get('https://www.baidu.com', timeout=None)# client实例关闭超时处理
with httpx.Client() as client:
client.get('https://www.baidu.com', timeout=10.0)
九、SSL验证
import httpx# 自带ca证书
response = httpx.get('https://www.baidu.com', verify="path/cert/client.pem")# 完全禁用SSL验证
response = httpx.get('https://www.baidu.com', verify=False)
十、异步操作
使用async/await语句来进行异步操作
使用异步client比使用多线程发送请求更加高效,更能体现明显的性能优势
import asyncio
import httpxasync def main():
async with httpx.AsyncClient() as client:
response = await client.get('https://www.baidu.com')
print(response)if __name__ == '__main__':
asyncio.run(main())
【python 包之 httpx 请求操作教程】以上就是本次分享的全部内容,现在想要学习编程的小伙伴欢迎关注Python技术大本营,获取更多技能与教程。
文章图片
推荐阅读
- Python中的七个小技巧
- python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)
- Python|知乎热议程序员「35岁定律」,30岁转行学Python是否可行()
- 算法|近似算法的近似率_选择最佳近似最近算法的数据科学家指南
- Python数据结构与算法_概论
- 小王,给这2000个客户发一下节日祝福的邮件
- 【史上最细Python教程】|【史上最细Python教程】(二)Python四大内置数据结构列表、字典、元组、集合看这一篇完全够用
- 科创项目|计算机设计大赛国奖作品_1. 项目概要
- python|用python玩转办公软件(pandas数据分析)入门