fish2018/pansou · error
获取PoW验证数据失败: HTTP
Error message
获取PoW验证数据失败: HTTP %d
What it means
Status error in solveRemotePowChallenge (plugin/gying/gying.go:1690): the PoW endpoint responded but with a non-200 status, so no challenge payload can be trusted. Means the challenge endpoint refused the request (challenge changed, blocked, or wrong URL).
Solutions
- 检查请求是否缺少必要 Cookie 或头
- 验证站点是否更换了 PoW 端点路径
- 记录响应体以确认返回内容
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at plugin/gying/gying.go:1690 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of fish2018/pansou@beaa561337 (2026-09-07).
Data as JSON: /api/errors/9a3ac14d949b4241.
Report an issue: GitHub.
Appendix: source
Thrown at plugin/gying/gying.go:1690
return p.solveLegacyHashChallenge(scraper, requestURL, &challenge)
}
func (p *GyingPlugin) solveRemotePowChallenge(scraper *cloudscraper.Scraper, requestURL string) error {
powURL, err := p.buildPowURL(requestURL)
if err != nil {
return err
}
if DebugLog {
fmt.Printf("[Gying] Remote PoW Challenge命中: url=%s powURL=%s\n", requestURL, powURL)
}
body, statusCode, _, err := p.requestWithChallengeRetry(scraper, http.MethodGet, powURL, "", "")
if err != nil {
return fmt.Errorf("获取PoW验证数据失败: %w", err)
}
if statusCode != http.StatusOK {
return fmt.Errorf("获取PoW验证数据失败: HTTP %d", statusCode)
}
var challenge ChallengePageData
if err := json.Unmarshal(body, &challenge); err != nil {
return fmt.Errorf("解析PoW验证数据失败: %w", err)
}
if challenge.N == "" || challenge.X == "" || challenge.T <= 0 {
return fmt.Errorf("PoW验证数据无效")
}
y, err := p.computePowResult(&challenge)
if err != nil {
return err
}
form := url.Values{}
form.Set("y", y)
View on GitHub (pinned to beaa561337)