Python:根据初始请求同时运行多个http请求?

时间:2017-04-07 23:14:45

标签: python apache http nginx concurrency

目前我正在尝试从具有2个端点的API中获取:

GET /AllUsers 
GET /user_detail/{id}

为了获取所有用户的详细信息,我必须拨打GET /AllUsers,然后循环访问ID,以便将GET /user_detail/{id}端点1调用1.我不知道是否'可以同时运行多个GET /user_detail/{id}个调用吗?或许还有更好的方法?

1 个答案:

答案 0 :(得分:0)

这听起来像是grequests

的一个很好的用例
import grequests

urls = [f'http://example.com/user_detail/{id}' for id in range(10)]

rs = (grequests.get(u) for u in urls)
responses = grequests.map(rs)

编辑:作为处理回复以检索json的示例,您可以:

data = []
for response in responses:
    data.append(response.json())