我正在使用grequests使用相同的url但不同的参数从网站异步下载数据。
例如,
<AndroidResgenExtraArgs>--no-crunch</AndroidResgenExtraArgs>
我怎样才能知道响应中的哪个响应属于来自unsent_requests的请求?或者响应的顺序与未发送的请求的顺序相同吗?
PS:response.url没有提供任何线索,因为完全不同的网址会返回。
答案 0 :(得分:4)
响应与请求的顺序相同,如usage example:
所示>>> reqs = [
... grequests.get('http://httpbin.org/delay/1', timeout=0.001),
... grequests.get('http://fakedomain/'),
... grequests.get('http://httpbin.org/status/500')]
>>> grequests.map(reqs, exception_handler=exception_handler)
Request failed
Request failed
[None, None, <Response [500]>]
答案 1 :(得分:3)
不,它们不是,异步请求的本质意味着尽管按顺序处理,但实际的响应并不保证是有序的。
这就是响应包含原始请求的原因,您可以通过迭代地图结果和打印响应来查看。请求 .url。