github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/prepare/02_http/proxy/client/client.go (about) 1 package main 2 3 import ( 4 "crypto/tls" 5 "fmt" 6 "net/http" 7 "net/http/httputil" 8 "net/url" 9 ) 10 11 func main() { 12 u, err := url.Parse("https://localhost:443") 13 if err != nil { 14 panic(err) 15 } 16 tr := &http.Transport{ 17 Proxy: http.ProxyURL(u), 18 // Disable HTTP/2. 19 TLSNextProto: make(map[string]func(authority string, c *tls.Conn) http.RoundTripper), 20 TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, // 不验证证书 21 22 } 23 client := &http.Client{Transport: tr} 24 resp, err := client.Get("https://www.baidu.com") 25 if err != nil { 26 panic(err) 27 } 28 defer resp.Body.Close() 29 dump, err := httputil.DumpResponse(resp, true) 30 if err != nil { 31 panic(err) 32 } 33 fmt.Printf("%s", dump) 34 }