python request.get提示服务器没响应,python-为什么request.get()不返回? request.get()使用的默认超时是多少?...

本文介绍了一种在Python代码中便捷添加超时处理的方法,通过requests_retry_session函数封装会话并设置默认超时,适用于各种HTTP请求。该解决方案来自GitHub上的讨论,适合提高网络请求的鲁棒性。
摘要由CSDN通过智能技术生成

我想将默认超时轻松添加到一堆代码中(假设超时解决了您的问题)

这是我从提交到请求存储库的票证中挑选的解决方案。

信用:[https://github.com/kennethreitz/requests/issues/2011#issuecomment-477784399]

解决方案是这里的最后两行,但是我展示了更多代码以提供更好的上下文。 我喜欢使用会话重试行为。

import requests

import functools

from requests.adapters import HTTPAdapter,Retry

def requests_retry_session(

retries=10,

backoff_factor=2,

status_forcelist=(500, 502, 503, 504),

session=None,

) -> requests.Session:

session = session or requests.Session()

retry = Retry(

total=retries,

read=retries,

connect=retries,

backoff_factor=backoff_factor,

status_forcelist=status_forcelist,

)

adapter = HTTPAdapter(max_retries=retry)

session.mount('http://', adapter)

session.mount('https://', adapter)

# set default timeout

for method in ('get', 'options', 'head', 'post', 'put', 'patch', 'delete'):

setattr(session, method, functools.partial(getattr(session, method), timeout=30))

return session

那么您可以执行以下操作:

requests_session = requests_retry_session()

r = requests_session.get(url=url,...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值