修复了一些错误

This commit is contained in:
TermiNexus committed 2026-09-18 20:01:14 +08:00
1 parent 61acfc2759
commit 0d77b68cc4
26 files changed
+116 -116

No files matched your search

+14 -14
View File
@@ -224,7 +224,7 @@ def _TlsErrText():
# 核心请求
# ============================================================
def _HttpsRequest(method: str, url: str, verify: bool, ca_file: str, data: str, content_type: str, auth: str = None) -> requests.Response | t.CPtr:
def _HttpsRequest(method: str, url: str, verify: bool, ca_file: str, data: str, content_type: str, auth: str = None) -> rawptr[requests.Response]:
"""HTTPS GET/POST 核心实现。
verify=False 时跳过证书链/主机名校验(不推荐);verify=True 时
@@ -237,7 +237,7 @@ def _HttpsRequest(method: str, url: str, verify: bool, ca_file: str, data: str,
_last_verify_flag = 1 if verify else 0
resp: requests.Response | t.CPtr = requests.create_response()
resp: rawptr[requests.Response] = requests.create_response()
if resp is None: return None
if _EnsureReady() != 0:
@@ -487,7 +487,7 @@ def _HttpsRequest(method: str, url: str, verify: bool, ca_file: str, data: str,
# 公共 API
# ============================================================
def _HttpsRedirectLoop(method: str, url: str, verify: bool, ca_file: str, data: str, content_type: str, auth: str = None) -> requests.Response | t.CPtr:
def _HttpsRedirectLoop(method: str, url: str, verify: bool, ca_file: str, data: str, content_type: str, auth: str = None) -> rawptr[requests.Response]:
"""HTTPS GET/POST + 重定向跟随(跨 http/https,最多 5 跳)。
auth(可选)原样透传给 _HttpsRequest;None 时行为与原来完全一致。
@@ -505,7 +505,7 @@ def _HttpsRedirectLoop(method: str, url: str, verify: bool, ca_file: str, data:
hop: INT = 0
while hop < 5:
resp: requests.Response | t.CPtr = _HttpsRequest(method, cur, verify, ca_file, data, content_type, auth)
resp: rawptr[requests.Response] = _HttpsRequest(method, cur, verify, ca_file, data, content_type, auth)
if resp is None:
requests._mbuddy.free(cur)
return None
@@ -542,7 +542,7 @@ def _HttpsRedirectLoop(method: str, url: str, verify: bool, ca_file: str, data:
if string.strncmp(nxt, "https://", 8) != 0:
requests._mbuddy.free(loc)
requests._mbuddy.free(cur)
http_resp: requests.Response | t.CPtr = requests.get(nxt)
http_resp: rawptr[requests.Response] = requests.get(nxt)
requests._mbuddy.free(nxt)
return http_resp
@@ -556,7 +556,7 @@ def _HttpsRedirectLoop(method: str, url: str, verify: bool, ca_file: str, data:
return None
def get(url: str, verify: bool = True, ca_file: str = None) -> requests.Response | t.CPtr:
def get(url: str, verify: bool = True, ca_file: str = None) -> rawptr[requests.Response]:
"""HTTPS GET request(自动跟随 3xx 重定向,最多 5 跳)。
Args:
@@ -570,7 +570,7 @@ def get(url: str, verify: bool = True, ca_file: str = None) -> requests.Response
def post(url: str, data: str = None, content_type: str = "application/x-www-form-urlencoded",
verify: bool = True, ca_file: str = None, auth: str = None) -> requests.Response | t.CPtr:
verify: bool = True, ca_file: str = None, auth: str = None) -> rawptr[requests.Response]:
"""HTTPS POST request(自动跟随 3xx 重定向,最多 5 跳)。
Args:
@@ -599,20 +599,20 @@ def post(url: str, data: str = None, content_type: str = "application/x-www-form
# (_st_state=2,失败原因见 stream_error_text()/last_error())。
# ============================================================
def _SseDeltaContent(root: json.JsonValue | t.CPtr) -> str:
def _SseDeltaContent(root: rawptr[json.JsonValue]) -> str:
"""从流式 data 事件取 choices[0].delta.content;缺失返回 None。"""
if root is None or not root.is_object():
return None
cv: json.JsonValue | t.CPtr = root["choices"]
cv: rawptr[json.JsonValue] = root["choices"]
if cv is None or not cv.is_array():
return None
m0: json.JsonValue | t.CPtr = cv.get_item(0)
m0: rawptr[json.JsonValue] = cv.get_item(0)
if m0 is None or not m0.is_object():
return None
dv: json.JsonValue | t.CPtr = m0["delta"]
dv: rawptr[json.JsonValue] = m0["delta"]
if dv is None or not dv.is_object():
return None
content_v: json.JsonValue | t.CPtr = dv["content"]
content_v: rawptr[json.JsonValue] = dv["content"]
if content_v is None or not content_v.is_string():
return None
return content_v.as_string()
@@ -820,7 +820,7 @@ def post_stream(url: str, data: str, content_type: str = "application/json",
sock.close()
requests._mbuddy.free(errmsg)
return -1
jpool: memhub.MemPool | t.CPtr = memhub.MemPool(pmem, 524288)
jpool: rawptr[memhub.MemPool] = memhub.MemPool(pmem, 524288)
leftover: t.CArray[t.CChar, 16384]
llen: INT = 0
@@ -880,7 +880,7 @@ def post_stream(url: str, data: str, content_type: str = "application/json",
if pl[0] != 0:
if string.strncmp(pl, "[DONE]", 6) != 0 or pl[6] != 0:
jpool.reset()
ev: json.JsonValue | t.CPtr = json.parse(jpool, pl)
ev: rawptr[json.JsonValue] = json.parse(jpool, pl)
dtx: str = _SseDeltaContent(ev)
if dtx is not None:
_StreamAppendContent(dtx)