Golang http短連線
阿新 • • 發佈:2018-12-17
客戶端關閉Http連線
在客戶端關閉 http 連線
- 直接在請求後關閉連線
func main() {
req, err := http.NewRequest("GET", "http://localhost",nil )
if err != nil {
log.Errorf("")
}
req.Close = true
resp, err := http.Client.Do(req)
...
}
- 在頭部設定連線狀態為關閉
func main() { req, err := http.NewRequest("GET", "http://localhost",nil ) if err != nil { log.Errorf("") } req.Header.Add("Connection", "close") resp, err := http.Client.Do(req) ... }
- 使用
Transport
取消 HTTP利用連線
func main() { tr := http.Transport{DisableKeepAlives: true} client := http.Client{Transport: &tr} resp, err := client.Get("https://golang.google.cn/") if resp != nil { defer resp.Body.Close() } checkError(err) fmt.Println(resp.StatusCode) // 200 body, err := ioutil.ReadAll(resp.Body) checkError(err) fmt.Println(len(string(body))) }
伺服器端設定短連線
func main(){ server := &http.Server{ Handler:handle, ReadTimeout: 20 * time.Second, WriteTimeout: 20 * time.Second, } listen, err := net.Listen("tcp4",s.addr) if err != nil { logger.Errorf("Failed to listen,err:%s",err.Error()) panic(err) } server.SetKeepAlivesEnabled(false) err = server.Serve(listen) }