Python 如何发出具有超时和最大内容大小的HTTP请求?

Python 如何发出具有超时和最大内容大小的HTTP请求?,python,httprequest,python-requests,Python,Httprequest,Python Requests,要使用超时,请在下一个模式中使用请求: import requests r = requests.get(url, stream=True, timeout=2) r.content() 但要使用大小限制,我需要使用流: import requests r = requests.get(currentUrl,stream=True) for chunk in r.iter_content(chunk_size=1024): buffer.extend(chunk) if

要使用超时,请在下一个模式中使用请求:

import requests


r = requests.get(url, stream=True, timeout=2)
r.content()
但要使用大小限制,我需要使用流:

import requests


r = requests.get(currentUrl,stream=True)
for chunk in r.iter_content(chunk_size=1024):
    buffer.extend(chunk)
    if len(buffer) > 1024 * 100:
        r.close()
        break
对于流式传输请求,超时仅适用于连接尝试。对于常规请求,超时应用于连接进程,并应用于从底层套接字读取数据的所有尝试。它不适用于请求的总下载时间

另一个选择是使用内容长度,但不是所有网站都有这个


我的问题是如何同时使用这两个限制?或者哪个软件包适用于此?

您是否尝试使用@LukasGraf自己设置阻止套接字操作的全局超时?我是说,请给我一个代码示例。比如说,
importsocket;socket.setdefaulttimeout(0.5)
-您需要在读取块时减少超时时间。相关问题如下: