fix: 内网API请求绕过系统代理
This commit is contained in:
@@ -19,7 +19,7 @@ import time
|
||||
from typing import Protocol
|
||||
from urllib.error import HTTPError, URLError
|
||||
from urllib.parse import quote, urlencode
|
||||
from urllib.request import Request, urlopen
|
||||
from urllib.request import ProxyHandler, Request, build_opener
|
||||
import warnings
|
||||
import zipfile
|
||||
|
||||
@@ -225,6 +225,7 @@ class MetrixApiClient:
|
||||
raise ProcessingError("METRIX_API_TOKEN is required for Metrix API access")
|
||||
self.base_url = base_url.rstrip("/")
|
||||
self.token = token
|
||||
self.opener = build_opener(ProxyHandler({}))
|
||||
|
||||
def get_bytes(self, endpoint: str, query: dict[str, object] | None = None, timeout: int = 30) -> bytes:
|
||||
return self._request("GET", endpoint, query=query, timeout=timeout)
|
||||
@@ -285,7 +286,7 @@ class MetrixApiClient:
|
||||
last_error: Exception | None = None
|
||||
for attempt in range(3):
|
||||
try:
|
||||
with urlopen(request, timeout=timeout) as response:
|
||||
with self.opener.open(request, timeout=timeout) as response:
|
||||
return response.read()
|
||||
except HTTPError as exc:
|
||||
detail = exc.read().decode("utf-8", "replace")[:1000]
|
||||
|
||||
Reference in New Issue
Block a user