修复 AEROWEB Cookie 提取:httpx session.cookies 替代 resp.cookies.jar

httpx 的 cookies API 与 requests 库不同,resp.cookies.jar 在 httpx 中不存在,
导致 PHPSESSID 提取失败、登录报错。改用 self.session.cookies.get() 直接读取。
This commit is contained in:
2569718930@qq.com
2026-05-23 01:04:01 +08:00
parent b1b1f76bcb
commit f8f0d69e5c
+7 -8
View File
@@ -60,15 +60,14 @@ class AerowebSourceMixin:
try: try:
# Step 1: get a fresh PHPSESSID # Step 1: get a fresh PHPSESSID
resp = self._http_get(f"{self.AEROWEB_BASE}/login.php", timeout=self.timeout) # Use the shared httpx session so cookies persist across requests.
# httpx follows redirects; grab PHPSESSID from the cookie jar resp = self.session.get(
sid = None f"{self.AEROWEB_BASE}/login.php", timeout=self.timeout
for cookie in resp.cookies.jar: )
if cookie.name == "PHPSESSID": # httpx stores cookies on the session; grab PHPSESSID from there.
sid = cookie.value sid = self.session.cookies.get("PHPSESSID")
break
if not sid: if not sid:
# Try extracting from Set-Cookie header # Fallback: parse Set-Cookie header directly
set_cookie = resp.headers.get("set-cookie", "") set_cookie = resp.headers.get("set-cookie", "")
for part in set_cookie.replace(",", ";").split(";"): for part in set_cookie.replace(",", ";").split(";"):
part = part.strip() part = part.strip()