HTTP客户端
已收录文章:7篇
-
Go 的 POST 请求第一次失败后重试,服务端却读到空 Body,通常不是服务端丢数据,而是请求体只被消费了一次。本文用 bytes.Reader、GetBody 和两次请求日志拆开这个问题,给出可验证的重试写法与边界。488 收藏
-
Golang · Go问答 | 1个月前 | go语言 · HTTP客户端 · Go问答 · 连接复用 · 排查清单 · net/http 连接复用 HTTP响应体 Go问答 resp.Body.Close 排查清单本文从 Go HTTP 客户端连接数上涨的现象出发,按代码、连接池和日志三层检查响应体是否读完并关闭,给出修复写法、反向验证和上线清单。452 收藏
-
Golang · Go问答 | 1星期前 | go · 性能排查 · net/http · HTTP客户端 · httptrace · DNS tls 连接复用 httptrace Go问答 HTTP请求慢Go HTTP 客户端变慢时,只看总耗时无法判断卡在 DNS、建连、TLS 还是服务端响应。本文用 httptrace.ClientTrace 采集分段时间,结合连接复用标记和最小复查清单,定位一次请求变慢的真正环节。393 收藏
-
Golang · Go教程 | 2星期前 | go · net/url · url · HTTP客户端 · 路径转义 · Go教程 url.JoinPath PathEscape RawPath URL拼接Go 的 url.JoinPath 会清理路径中的 ./ 和 ../,并重新处理斜杠;它适合拼接已分段的 URL 路径,但不能替代 PathEscape,也不应把整段用户输入直接当作一个路径片段。本文用文件名、RawPath 和查询参数案例讲清边界。354 收藏
-
Golang · Go问答 | 3星期前 | 性能排查 · net/http · HTTP客户端 · Go问答 · 连接复用 · 连接复用 keep-alive http.Transport Response.Body Go HTTP ClientGo 服务的请求量并不高,客户端却不断新建 TCP 连接时,先看 Response.Body 是否在所有分支读到 EOF 并关闭。Go 官方文档说明,Body 未同时读完和关闭时,底层 Transport 可能无法复用持久连接。本文从一次连接数异常的现场出发,给出定位、修复和边界判断。241 收藏
-
Golang · Go教程 | 2个月前 | 超时控制 · 故障排查 · Go教程 · 后端工程 · Golang实战 · HTTP客户端 · golang Go 性能优化 net/http context Transport 超时 http.Client 生产实践从一次下游接口卡死导致 goroutine 和连接堆积的事故出发,讲清 Go http.Client Timeout、Transport 超时、Request Context、连接复用、重试边界和上线检查。205 收藏
-
Go 服务调用外部 HTTP 接口时,如果没有设置超时,慢接口可能让请求一直等待。本文从复现现象开始,逐步定位原因,并给出 Client.Timeout 与 context 截止时间两种可靠写法。115 收藏