python requests max retries_Python requests“Max retries exceeded with url” error

19-4-29补充:

error1:

NewConnectionError(': Failed to establish a new connection:

[WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。',))

解决办法:

session.keep_alive=False

error2:

python hostname doesn't match either of facebookXXXXX

解决办法:

import ssl

ssl.match_hostname = lambda cert, hostname: True

多方查阅后发现了解决问题的原因:http连接太多没有关闭导致的。

解决办法:

增加重试连接次数

requests.adapters.DEFAULT_RETRIES = 5

关闭多余的连接

requests使用了urllib3库,默认的http connection是keep-alive的,requests设置False关闭。

操作方法

s = requests.session()

s.keep_alive = False

只用session进行操作。即只创建一个连接,并设置最大连接数或者重试次数。

import requests

from requests.adapters import HTTPAdapter

from requests.packages.urllib3.util.retry import Retry

session = requests.Session()

retry = Retry(connect=3, backoff_factor=0.5)

adapter = HTTPAdapter(max_retries=retry)

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

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

session.get(url)

import requests

from requests.adapters import HTTPAdapter

from requests.packages.urllib3.util.retry import Retry

s = requests.Session()

retry = Retry(connect = 5, backoff_factor = 1)

adapter = HTTPAdapter(max_retries = retry)

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

s.keep_alive = False

res = s.post(self.conn.host + '/sign-in', data = json.dumps({

'name': "XXX",

'pwd': "XXX"

}))

response = res.json()

但是在starkoverflow上有人给出了这样的解释。

安装 py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值