HTTPX|Python 3的下一代HTTP客户端

简介

HTTPX 是最近 GitHub看的到一个比较火的一个项目,根据官网描述,总结有以下特色:python

  • 和使用 requests 同样方便,requests 有的它都有
  • 加入 HTTP/1.1 和 HTTP/2 的支持。
  • 可以直接向 WSGI 应用程序或 ASGI 应用程序发出请求。
  • 处处都有严格的超时设置
  • 全类型注释
  • 100% 的测试覆盖率

    FastAPI中的简单应用

文后的参考中给出了HTTPX基本使用举例,在此不赘述。个人结论至少有二:
(1)简化了传统的同步HTTP操做
(2)简化了异步HTTP操做(也是最大亮点吧)git

如今来看一个在FastAPI开发中测试API的基本例子:github

建立主模块程序main.py

代码以下:api

HTTPX|Python 3的下一代HTTP客户端

编写测试文件test_main.py

代码以下:
HTTPX|Python 3的下一代HTTP客户端异步

【注意】若是咱们想在测试中调用异步函数,咱们的测试函数也必须是异步的!Pytest为此提供了一个整洁的库,称为Pytest-asyncio,它容许咱们指定异步调用某些测试函数。安装命令以下:async

HTTPX|Python 3的下一代HTTP客户端

安装了Pytest-asyncio后,pytest会自动判断并调用它。若是不安装这个pytest-asyncio库,那么上面代码中从httpx导入AsyncClient时将出现语法错误,提供没有这个类支持!!!ide

小结

httpx是一个正在成长中的年轻Python3库,可是从github用户关注度及Python应用需求现状来看,这个库很是有前景!不管在服务端开发方面,仍是在爬虫开发方面。函数

参考

https://github.com/encode/httpx
https://www.python-httpx.org/advanced/
https://fastapi.tiangolo.com/advanced/async-tests/测试

相关文章
相关标签/搜索