修复了一些错误
This commit is contained in:
1 parent
61acfc2759
commit
0d77b68cc4
26 files changed
+116
-116
No files matched your search
+14
-14
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user