在Python中利用grequests实现一个并发请求功能-创新互联

在Python中利用grequests实现一个并发请求功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联专注于澄迈网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供澄迈营销型网站建设,澄迈网站制作、澄迈网页设计、澄迈网站官网定制、小程序制作服务,打造澄迈网络公司原创品牌,更为您提供澄迈网站排名全网营销落地服务。

前言

requests是Python发送接口请求非常好用的一个三方库,由K神编写,简单,方便上手快。但是requests发送请求是串行的,即阻塞的。发送完一条请求才能发送另一条请求。
为了提升测试效率,一般我们需要并行发送请求。这里可以使用多线程,或者协程,gevent或者aiohttp,然而使用起来,都相对麻烦。

grequests简单使用


首先构造一个请求列表,使用grequests.map()并行发送,得到一个响应列表。示例如下。

import grequests

req_list = [ # 请求列表
 grequests.get('http://httpbin.org/get?a=1&b=2'),
 grequests.post('http://httpbin.org/post', data={'a':1,'b':2}),
 grequests.put('http://httpbin.org/post', json={'a': 1, 'b': 2}),
]

res_list = grequests.map(req_list) # 并行发送,等最后一个运行完后返回
print(res_list[0].text) # 打印第一个请求的响应文本

名称栏目:在Python中利用grequests实现一个并发请求功能-创新互联
本文网址:http://myzitong.com/article/dscdec.html