diff --git a/backend/internal/api/upload.go b/backend/internal/api/upload.go index 0541b63..541013c 100644 --- a/backend/internal/api/upload.go +++ b/backend/internal/api/upload.go @@ -7,9 +7,9 @@ import ( "net/http" "strings" "sync" - "time" "unicode" + "codex-pool/internal/client" "codex-pool/internal/database" "codex-pool/internal/logger" ) @@ -255,7 +255,10 @@ func normalizeOwner(rec accountRecord, index int) (database.TeamOwner, error) { // fetchAccountID 通过 token 获取 account_id func fetchAccountID(token string) (string, error) { - client := &http.Client{Timeout: 15 * time.Second} + tlsClient, err := client.New("") + if err != nil { + return "", fmt.Errorf("创建 TLS 客户端失败: %v", err) + } req, err := http.NewRequest("GET", "https://chatgpt.com/backend-api/accounts/check/v4-2023-04-27", nil) if err != nil { @@ -264,9 +267,8 @@ func fetchAccountID(token string) (string, error) { req.Header.Set("Authorization", "Bearer "+token) req.Header.Set("Content-Type", "application/json") - req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36") - resp, err := client.Do(req) + resp, err := tlsClient.Do(req) if err != nil { return "", fmt.Errorf("请求失败: %v", err) } @@ -276,7 +278,7 @@ func fetchAccountID(token string) (string, error) { return "", fmt.Errorf("API 返回状态码: %d", resp.StatusCode) } - body, err := io.ReadAll(resp.Body) + body, err := client.ReadBody(resp) if err != nil { return "", fmt.Errorf("读取响应失败: %v", err) } diff --git a/frontend/src/pages/Upload.tsx b/frontend/src/pages/Upload.tsx index ad79910..3ac88fc 100644 --- a/frontend/src/pages/Upload.tsx +++ b/frontend/src/pages/Upload.tsx @@ -58,6 +58,7 @@ export default function Upload() { const [status, setStatus] = useState(null) const [polling, setPolling] = useState(false) const [loading, setLoading] = useState(false) + const [refreshing, setRefreshing] = useState(false) const [importResult, setImportResult] = useState<{ imported: number total: number @@ -232,8 +233,13 @@ export default function Upload() {