我想“ping”一个服务器,检查标头响应以查看链接是否损坏,如果没有损坏,则实际下载响应正文。
传统上,使用模块的同步方法requests
,您可以发送get
带有参数的请求stream = True
,并在响应正文下载之前捕获标头,在出现错误(例如未找到)的情况下决定中止连接。
我的问题是,使用异步库执行此操作,grequests
或者requests-futures
对于我减少的知识库来说已成为不可能。
我已经尝试将流参数设置为 truerequest-futures
但没有用,它仍然会下载响应正文,而不会让我在获得响应标头后立即进行干预。即使是这样,我也不确定如何进行。
这是我尝试过的:
测试.py
from requests_futures.sessions import FuturesSession
session = FuturesSession()
session.stream = True
future = session.get('http://www.google.com')
response = future.result()
print(response.status_code) # Here I would assume the response body hasn't been loaded
调试后,我发现它以任何一种方式下载响应正文。
我将不胜感激最初问题的任何解决方案,无论它是否符合我的逻辑。