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

2025年11月03日 18:15 响应: 17.94秒 状态: success

🚨 错误信息

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 Retry

def 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 socket

def 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 是否可访问。