package captcha import ( "fmt" "io" "log/slog" "net/http" "schedule_converter/client" "schedule_converter/config" ) func SaveCaptchaImage(httpClient *http.Client) ([]byte, error) { req, err := http.NewRequest("GET", config.Get().BaseURL+"/captchaImage", nil) if err != nil { return nil, err } req.Header = client.GetHeaders() resp, err := httpClient.Do(req) if err != nil { return nil, err } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { return nil, fmt.Errorf("获取验证码失败, 状态码: %d", resp.StatusCode) } body, err := io.ReadAll(resp.Body) if err != nil { return nil, err } return body, nil } func GetAndRecognize(httpClient *http.Client) (string, error) { _, err := SaveCaptchaImage(httpClient) if err != nil { return "", err } captchaCode, err := Recognize("captcha.png") if err != nil { return "", err } slog.Debug("验证码识别完成", "result", captchaCode) return captchaCode, nil } func Recognize(imagePath string) (string, error) { return "....", nil }