From e981188bf892e6f189f8b08f25fa661edb81406e Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Fri, 15 May 2026 03:33:06 +0800 Subject: [PATCH] =?UTF-8?q?AMSC=20=E8=AF=B7=E6=B1=82=E4=BB=8E=20httpx=20?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=20urllib=EF=BC=8C=E5=BD=BB=E5=BA=95=E7=BB=95?= =?UTF-8?q?=E8=BF=87=E4=BB=A3=E7=90=86=E5=B9=B2=E6=89=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/data_collection/amsc_awos_sources.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/data_collection/amsc_awos_sources.py b/src/data_collection/amsc_awos_sources.py index bf16b497..cb8bd0df 100644 --- a/src/data_collection/amsc_awos_sources.py +++ b/src/data_collection/amsc_awos_sources.py @@ -10,12 +10,13 @@ from __future__ import annotations import json import os +import ssl import time from datetime import datetime, timedelta, timezone from typing import Any, Dict, Optional from urllib.parse import quote +from urllib.request import Request, urlopen -import httpx from loguru import logger from src.utils.metrics import record_source_call @@ -191,11 +192,14 @@ class AmscAwosSourceMixin: return headers def _http_get_json(self, url: str, *, headers: Optional[Dict[str, str]] = None) -> Optional[Dict[str, Any]]: - with httpx.Client(verify=False, trust_env=False) as client: - response = client.get(url, headers=headers, timeout=getattr(self, "timeout", 10.0)) - response.raise_for_status() + ctx = ssl.create_default_context() + ctx.check_hostname = False + ctx.verify_mode = ssl.CERT_NONE + req = Request(url, headers=headers or {}) + with urlopen(req, timeout=getattr(self, "timeout", 10.0), context=ctx) as resp: + raw = resp.read().decode("utf-8", errors="replace") try: - return response.json() + return json.loads(raw) except json.JSONDecodeError: return None