fix(http): close helper responses consistently

This commit is contained in:
InfinityPacer
2026-04-10 18:19:04 +08:00
committed by jxxghp
parent df3294c9d2
commit 815d83bfb3

View File

@@ -206,16 +206,18 @@ class RequestUtils:
:return: 响应的内容若发生RequestException则返回None
"""
response = self.request(method="get", url=url, params=params, **kwargs)
if response:
try:
content = str(response.content, "utf-8")
return content
except Exception as e:
logger.debug(f"处理响应内容失败: {e}")
return None
finally:
try:
if response:
try:
content = str(response.content, "utf-8")
return content
except Exception as e:
logger.debug(f"处理响应内容失败: {e}")
return None
return None
finally:
if response is not None:
response.close()
return None
def post(self, url: str, data: Any = None, json: dict = None, **kwargs) -> Optional[Response]:
"""
@@ -382,16 +384,18 @@ class RequestUtils:
:return: JSON数据若发生异常则返回None
"""
response = self.request(method="get", url=url, params=params, **kwargs)
if response:
try:
data = response.json()
return data
except Exception as e:
logger.debug(f"解析JSON失败: {e}")
return None
finally:
try:
if response:
try:
data = response.json()
return data
except Exception as e:
logger.debug(f"解析JSON失败: {e}")
return None
return None
finally:
if response is not None:
response.close()
return None
def post_json(self, url: str, data: Any = None, json: dict = None, **kwargs) -> Optional[dict]:
"""
@@ -405,16 +409,18 @@ class RequestUtils:
if json is None:
json = {}
response = self.request(method="post", url=url, data=data, json=json, **kwargs)
if response:
try:
data = response.json()
return data
except Exception as e:
logger.debug(f"解析JSON失败: {e}")
return None
finally:
try:
if response:
try:
data = response.json()
return data
except Exception as e:
logger.debug(f"解析JSON失败: {e}")
return None
return None
finally:
if response is not None:
response.close()
return None
@staticmethod
def parse_cache_control(header: str) -> Tuple[str, Optional[int]]:
@@ -711,16 +717,18 @@ class AsyncRequestUtils:
:return: 响应的内容若发生RequestError则返回None
"""
response = await self.request(method="get", url=url, params=params, **kwargs)
if response:
try:
content = response.text
return content
except Exception as e:
logger.debug(f"处理异步响应内容失败: {e}")
return None
finally:
await response.aclose() # 确保连接被关闭
return None
try:
if response:
try:
content = response.text
return content
except Exception as e:
logger.debug(f"处理异步响应内容失败: {e}")
return None
return None
finally:
if response is not None:
await response.aclose()
async def post(self, url: str, data: Any = None, json: dict = None, **kwargs) -> Optional[httpx.Response]:
"""
@@ -887,16 +895,18 @@ class AsyncRequestUtils:
:return: JSON数据若发生异常则返回None
"""
response = await self.request(method="get", url=url, params=params, **kwargs)
if response:
try:
data = response.json()
return data
except Exception as e:
logger.debug(f"解析异步JSON失败: {e}")
return None
finally:
try:
if response:
try:
data = response.json()
return data
except Exception as e:
logger.debug(f"解析异步JSON失败: {e}")
return None
return None
finally:
if response is not None:
await response.aclose()
return None
async def post_json(self, url: str, data: Any = None, json: dict = None, **kwargs) -> Optional[dict]:
"""
@@ -910,13 +920,15 @@ class AsyncRequestUtils:
if json is None:
json = {}
response = await self.request(method="post", url=url, data=data, json=json, **kwargs)
if response:
try:
data = response.json()
return data
except Exception as e:
logger.debug(f"解析异步JSON失败: {e}")
return None
finally:
try:
if response:
try:
data = response.json()
return data
except Exception as e:
logger.debug(f"解析异步JSON失败: {e}")
return None
return None
finally:
if response is not None:
await response.aclose()
return None