create: Checkpoint 2026-09-26 18:30:04 UTC [1f4ac8f6d5]

MemRelay-Operation: checkpoint-save:rapt-checkpoint-httpx-proxy-20260927
MemRelay-Resource: 88cf5ef2-f89e-4270-8dda-d1743b3facf1
This commit is contained in:
2026-09-27 02:30:06 +08:00
parent 4cc7b8721b
commit af65bf6f5d
@@ -0,0 +1,26 @@
---
title: Checkpoint 2026-09-26 18:30:04 UTC [1f4ac8f6d5]
type: checkpoint
permalink: main/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/checkpoint-2026-09-26-18-30-04-utc-1f4ac8f6d5
stable_id: 88cf5ef2-f89e-4270-8dda-d1743b3facf1
scope: project
memory_type: checkpoint
project_id: 280dd2a0-d23d-4a71-91e1-dce4353163be
usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998
status: active
revision: 1
request_id: rapt-checkpoint-httpx-proxy-20260927
created_at: '2026-09-26T18:30:04.177958+00:00'
updated_at: '2026-09-26T18:30:04.177958+00:00'
tags:
- httpx
- proxy
---
完成:对外 HTTP 从 urllib 改为 httpx.Client;代理三种模式;登录页右下角齿轮按钮;设置弹窗用 n-tabs 分「设备信息」和「代理」两页,底部共用保存。
原因:统一对外客户端,并让代理跟随本机设置生效,且设备信息和代理不放在同一屏。
关键实现:rapt_scraper.configure_proxy / http_client_kwargs;不使用时 trust_env=False;系统代理来自 urllib.request.getproxies();自定义 HTTP 为 http://,SOCKS5 为 socks5h://。server/requirements.txt 为 httpx[socks],已从 server/.venv 卸掉 PySocks。设置存 localStorage 键 rapt-device-settings,打开页面 POST /api/proxy。登录后 use_device 绑定 token。ADB 从设备读取时只覆盖指纹和语言。
验证:小脚本确认关闭代理时 trust_env 为 False、缺地址报错、http 与 socks5 能组出代理参数并构造 Client(未真连外网)。ui 目录 vue-tsc --noEmit 通过。浏览器打开 http://127.0.0.1:52202/ :右下角齿轮,悬停提示「设置」;两页可切换且同一屏看不到另一页字段;自定义可选 HTTP/SOCKS5 和地址端口;空地址保存显示「请填写代理地址」且弹窗不关闭。设备页内容超出时在页内滚动,取消和保存仍在底部。浏览器已解锁。
问题:没有用真实外网代理做连通测试。
下一步:若要加快大量 ts 下载,再单独把同步 download_episode 改成 httpx.AsyncClient 并发约 8–16。不要继续抓包界面,不要调 /app/open/foryou。
给下个会话:Tauri 当前在跑 npm run tauri dev,地址 http://127.0.0.1:52202/。未提交。下载仍是同步 Client。swagger/serve.py 仍用 urllib,它不是对外 API 客户端。不要把代理密码、账号密码或 token 写进源码和普通记忆。