package main import ( "io" "net/http" "net/url" "os" ) func main() { // proxyUrl, _ := url.Parse("socks5://127.0.0.1:1080") proxyUrl, _ := url.Parse("http://127.0.0.1:8087") t := &http.Transport{ Proxy: http.ProxyURL(proxyUrl), } // 一般主要两种,http 代理 和 shadow socks 的代码, socks5 client := http.Client{Transport: t} r, _ := client.Get("https://google.com") defer func() { _ = r.Body.Close() }() _, _ = io.Copy(os.Stdout, r.Body) // session // session.Get // session.Post // session.Put // session.Delete }
package main import ( "context" "net" "net/http" "time" ) func main() { // https://colobu.com/2016/07/01/the-complete-guide-to-golang-net-http-timeouts/ client := &http.Client{ Timeout: 10 * time.Second, Transport: &http.Transport{ DialContext: func(ctx context.Context, network, addr string) (conn net.Conn, e error) { return net.DialTimeout(network, addr, 2*time.Second) }, ResponseHeaderTimeout: 5 * time.Second, TLSHandshakeTimeout: 2 * time.Second, IdleConnTimeout: 60 * time.Second, }, } r, _ := client.Get("http://httpbin.org/delay/10") }