我确实通过 http 客户端发送请求,但是它在第一次迭代后停止。我没有看到任何恐慌,所以不明白会发生什么。
func sending() {
var defaultTransport http.RoundTripper = &http.Transport{
Proxy: nil,
DialContext: (&net.Dialer{
Timeout: 10 * time.Second,
KeepAlive: 30 * time.Second,
}).DialContext,
MaxIdleConns: 30,
IdleConnTimeout: 90 * time.Second,
TLSHandshakeTimeout: 15 * time.Second,
ExpectContinueTimeout: 1 * time.Second,
}
client := &http.Client{Transport: defaultTransport}
var buf bytes.Buffer
g := gzip.NewWriter(&buf)
g.Write([]byte(messageToSend))
g.Close()
req, err := http.NewRequest("POST", "https://xxxxxxxx.xxx/xxxxxxx", bytes.NewReader(buf.Bytes()))
if err != nil {
log.Fatal(err)
}
req.Header.Set("Content-Type", "text/plain")
req.Header.Set("Content-Encoding", "gzip")
println("request sent")
resp, err := client.Do(req)
println("response got")
if err != nil {
log.Fatal(err)
} else {
resp.Body.Close()
}
}
func main() {
for i:=1;i<10;i++{
fmt.Println("Started",i)
sending()
fmt.Println("Finished",i)
}
}
日志:
Started 1
request sent
2020/12/09 18:30:52 Unsolicited response received on idle HTTP channel starting with "\n"; err=<nil>
response got
2020/12/09 18:30:53 Post "https://xxxx.xxx/xxxx": net/http: HTTP/1.x transport connection broken: too many transfer encodings: ["chunked" "chunked"]
在此条目之后,应用程序停止并且不执行下一轮。
紫衣仙女
相关分类