[WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 The above exception was the...
🚨 错误信息
Traceback (most recent call last):
File "D:\anaconda\Lib\site-packages\urllib3\connection.py", line 199, in _new_conn
sock = connection.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\anaconda\Lib\site-packages\urllib3\util\connection.py", line 85, in create_connection
raise err
File "D:\anaconda\Lib\site-packages\urllib3\util\connection.py", line 73, in create_connection
sock.connect(sa)
TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "D:\anaconda\Lib\site-packages\urllib3\connectionpool.py", line 789, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "D:\anaconda\Lib\site-packages\urllib3\connectionpool.py", line 490, in _make_request
raise new_e
File "D:\anaconda\Lib\site-packages\urllib3\connectionpool.py", line 466, in _make_request
self._validate_conn(conn)
File "D:\anaconda\Lib\site-packages\urllib3\connectionpool.py", line 1095, in _validate_conn
conn.connect()
File "D:\anaconda\Lib\site-packages\urllib3\connection.py", line 693, in connect
self.sock = sock = self._new_conn()
^^^^^^^^^^^^^^^^
File "D:\anaconda\Lib\site-packages\urllib3\connection.py", line 208, in _new_conn
raise ConnectTimeoutError(
urllib3.exceptions.ConnectTimeoutError: (<urllib3.connection.HTTPSConnection object at 0x000001CCC1D93E30>, 'Connection to www.dmxapi.cn timed out. (connect timeout=None)')
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "D:\anaconda\Lib\site-packages\requests\adapters.py", line 667, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "D:\anaconda\Lib\site-packages\urllib3\connectionpool.py", line 843, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "D:\anaconda\Lib\site-packages\urllib3\util\retry.py", line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.dmxapi.cn', port=443): Max retries exceeded with url: /v1/chat/completions (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x000001CCC1D93E30>, 'Connection to www.dmxapi.cn timed out. (connect timeout=None)'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\Users\1017l\Desktop\prompts\测试.py", line 72, in <module>
response=reason(prompt,model)
^^^^^^^^^^^^^^^^^^^^
File "c:\Users\1017l\Desktop\prompts\测试.py", line 27, in reason
response = requests.post(url, headers=headers, data=json.dumps(payload))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\anaconda\Lib\site-packages\requests\api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\anaconda\Lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\anaconda\Lib\site-packages\requests\sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\anaconda\Lib\site-packages\requests\sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\anaconda\Lib\site-packages\requests\adapters.py", line 688, in send
raise ConnectTimeout(e, request=request)
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='www.dmxapi.cn', port=443): Max retries exceeded with url: /v1/chat/completions (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x000001CCC1D93E30>, 'Connection to www.dmxapi.cn timed out. (connect timeout=None)'))
🤖 AI解决方案
text
TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
ConnectTimeoutError: Connection to www.dmxapi.cn timed out. (connect timeout=None)
原因分析
网络连接超时,客户端无法在指定的时间内连接到目标服务器
www.dmxapi.cn:443。解决方案
方案1:增加超时时间并添加重试机制
python
import requests
import time
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retrydef requests_retry_session(
retries=3,
backoff_factor=0.3,
status_forcelist=(500, 502, 504),
session=None,
):
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)
return session
在原有请求代码中替换
try:
response = requests_retry_session().post(
url,
headers=headers,
data=json.dumps(payload),
timeout=30 # 设置合理的超时时间
)
response.raise_for_status()
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
方案2:检查网络连接状态
python
import socketdef check_connection(host, port=443, timeout=5):
try:
socket.create_connection((host, port), timeout=timeout)
return True
except socket.error:
return False
在发送请求前检查连接
if check_connection('www.dmxapi.cn'):
response = requests.post(url, headers=headers, data=json.dumps(payload), timeout=30)
else:
print("无法连接到目标服务器,请检查网络连接")
预防措施
timeout 参数需要补充的信息:当前网络环境是否正常,目标服务 www.dmxapi.cn 是否可访问。