浅度测评:requests、aiohttp、httpx 我应该用哪一个?
在武汉,房子里待着,不出去影响世界了,转载点文章。 在 Python 众多的 HTTP 客户端中,最有名的莫过于 requests 、 aiohttp 和 httpx 。在不借助其他第三方库的情况下, requests 只能发送同步请求; aiohttp 只能发送异步请求; httpx 既能发送同步请求,又能发送异步请求。 所谓的同步请求,是指在单进程单线程的代码中,发起一次请求后,在收到返回结果之前,不能发起下一次请求。所谓异步请求,是指在单进程单线程的代码中,发起一次请求后,在等待网站返回结果的时间里,可以继续发送更多请求。 今天我们来一个浅度测评,仅仅以多次发送 POST 请求这个角度来对比这三个库的性能。 测试使用的 HTTP 服务地址为http://122.51.39.219:8000/query,向它发送 POST 请求的格式如下图所示: 请求发送的 ts 字段日期距离今天大于10天,那么返回 {"success": false} ,如果小于等于10天,那么返回 {"success": true} 。 首先我们通过各个客户端使用相同的参数只发送一次请求,看看效果。 发送一次请求 requests import requests resp = requests.post( 'http://122.51.39.219:8000/query' , json={ 'ts' :