This commit is contained in:
yumoqing 2025-08-14 17:39:22 +08:00
parent b8f989a947
commit 750fc04cd7

View File

@ -76,29 +76,26 @@ class StreamHttpClient:
Makes an HTTP request and yields response chunks (streamed). Makes an HTTP request and yields response chunks (streamed).
""" """
use_socks = url in self.socks_urls use_socks = url in self.socks_urls
if use_socks:
debug(f"🔁 Using SOCKS5 directly for: {url}")
async for chunk in self._request_with_connector(
method, url,
headers=headers, params=params, data=data,
json=json, files=files,
use_socks=True, chunk_size=chunk_size, **kw
):
yield chunk
return
try: try:
if use_socks: debug(f"🌐 Trying direct request: {url}")
debug(f"🔁 Using SOCKS5 directly for: {url}") async for chunk in self._request_with_connector(
async for chunk in self._request_with_connector( method, url,
method, url, headers=headers, params=params, data=data,
headers=headers, params=params, data=data, json=json, files=files,
json=json, files=files, use_socks=False, chunk_size=chunk_size, **kw
use_socks=True, chunk_size=chunk_size, **kw ):
): yield chunk
yield chunk
else:
debug(f"🌐 Trying direct request: {url}")
async for chunk in self._request_with_connector(
method, url,
headers=headers, params=params, data=data,
json=json, files=files,
use_socks=False, chunk_size=chunk_size, **kw
):
yield chunk
except Exception as e: except Exception as e:
if use_socks:
exception(f"❌ SOCKS5 request failed: {e},{format_exc()}")
return
debug(f"❌ Direct request failed: {e}") debug(f"❌ Direct request failed: {e}")
debug("🧦 Retrying with SOCKS5 proxy...") debug("🧦 Retrying with SOCKS5 proxy...")
try: try:
@ -112,6 +109,7 @@ class StreamHttpClient:
yield chunk yield chunk
except Exception as e2: except Exception as e2:
exception(f"❌ SOCKS5 request also failed: {e2},{format_exc()}") exception(f"❌ SOCKS5 request also failed: {e2},{format_exc()}")
raise e2
async def _request_with_connector(self, method, url, async def _request_with_connector(self, method, url,
headers=None, params=None, data=None, headers=None, params=None, data=None,