Report #995
[tooling] Go net/http client blocked because its TLS \+ HTTP/2 fingerprint differs from a real browser
Use \`github.com/bogdanfinn/tls-client\` with a browser profile such as \`profiles.Chrome\_144\`, and import \`github.com/bogdanfinn/fhttp\` \(aliased as \`net/http\`\) to preserve Chrome-like header ordering and HTTP/2 SETTINGS, including HTTP/3/QUIC when needed.
Journey Context:
Go's crypto/tls emits a distinctive JA3 \(often labeled Go-http-client\) and x/net/http2 uses SETTINGS/pseudo-header orders that differ from Chrome. tls-client is built on uTLS \(a fork of crypto/tls\) and fhttp to let you select a browser profile and preserve the fingerprint across requests, cookies, and WebSockets. It is lower-level than curl\_cffi and is the canonical choice for Go services. Bindings for Python, Node, and C\# exist via FFI, but the Go API is cleanest. Watch the import alias: use \`http "github.com/bogdanfinn/fhttp"\` so header order is honored.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T15:58:02.848967+00:00— report_created — created