我需要以2.7和3.x的方式进行一些异步休息调用。我已经看到了一些关于grequest的建议,但文档非常缺乏。我的默认代码如下所示:
import requests
for i in range(1, 10):
x = requests.post('some_endpoint', data={"a":i})
工作正常,但不是异步。我尝试过使用grequests,但我发现的唯一用法是这样的:
import grequests
for i in range(1, 10):
x = grequests.post('some_endpoint', data={"a":i})
grequests.map([x])
这有效,但它不是异步。
我做错了什么,或者问候不像我假设的那样?我可以使用其他一些可以在2.7和3.x中使用的库吗?
答案 0 :(得分:1)
您需要使用grequests.map
一次性发送所有请求,因为在完成所有请求之前它不会返回。
import grequests
req = []
for i in range(1, 10):
req.append(grequests.get('https://www.google.com'))
grequests.map(req)
for r in req:
print r.response