分享

python 包之 httpx 请求操作教程

 hfyangyi 2022-05-06 发布于安徽省

一、安装 httpx是Python新一代的网络请求库 httpx与 requests 库的基本使用方法几乎是一模一样的 基于Python3的功能齐全的http请求模块 既能发送同步请求,也能发送异步请求 支持HTTP/1.1和HTTP/2 支持直接向WSGI应用程序或者ASGI应用程序发送请求

pip install 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') ----------------------------------- ©著作权归作者所有:来自51CTO博客作者autofelix的原创作品,否则将追究法律责任 python 包之 httpx 请求操作教程 https://blog.51cto.com/autofelix/5188556复制代码

三、带参数请求

data = {
    'name': 'autofelix',
    'age': 25
}

response = httpx.get('https://www.baidu.com', params=data)
print(response.url)
print(response.text)复制代码

四、自定义 headers

headers = { '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)复制代码

五、请求的属性

response = httpx.get('https://www.baidu.com')

# 响应状态码
response.status_code
# 响应头
response.headers
# 响应cookie
response.cookies
# 请求url
response.url
# 历史记录
response.history复制代码

六、使用client发送请求

with httpx.Client() as client: response = client.get('https://www.baidu.com') print(response.text)复制代码

七、HTTP代理

proxies= {
    '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)复制代码

八、超时处理

# 普通请求超时处理 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验证

# 自带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 httpx async def main(): async with httpx.AsyncClient() as client: response = await client.get('https://www.baidu.com') print(response) if __name__ == '__main__': asyncio.run(main())复制代码

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多