gpt4 book ai didi

python - 正确处理连接错误 : Connection aborted, BadStatusLine ("' ",)

转载 作者:太空宇宙 更新时间:2023-11-03 15:53:30 29 4
gpt4 key购买 nike

我一直在使用 Python 中的 requests 库查询 Web 服务器上的数据。我收到以下错误:

ConnectionError: ('Connection aborted.', BadStatusLine("''",))

我希望我的程序中止,而是测试连接并从中断处继续。我该怎么做?

我在一个名为 query_predix_ts 的函数中有以下代码来查询 Web 服务器:

r_s = requests.post(url, data=json.dumps(payload2), headers=header_store)

这是函数调用:

for tag in tags_list:
if tag in tags_with_dim_list:
for dim in dims:
try:
df = query_predix_ts(t1, t2, tag, 0, this_msk, dim)
except(ValueError, NameError) as e:
print e
if df.shape[0] != 0:
sensor_type = tag + dim
df['sensor_type'] = sensor_type
# print df.head()
single_df.append(df)

我应该如何将此行包含在 try-exception 中,以便在出现连接错误时,它会继续尝试,例如在中止之前尝试 5 次?

最佳答案

因此,您可能会将该行包含在 query_predix_ts 方法中,因为这是最合乎逻辑的地方,如下所示:

r_s = None
count = 0
while r_s is None and count < 5:
try:
r_s = requests.post(...)
except requests.exceptions.ConnectionError:
count += 1

if r_s:
raise MyException('Could not connect to {host}'.format(...))

或者,您可以使用内置的 retry logic在 requests 和 urllib3.例如,

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


def query_predix_ts(...):
session = requests.Session()
for scheme in ('http://', 'https://'):
session.mount(scheme, adapters.HTTPAdapter(
max_retries=retry.Retry(connect=5),
))

r_s = session.post(...)

关于python - 正确处理连接错误 : Connection aborted, BadStatusLine ("' ",),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41024491/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com