使用 http.Client 和 http.Transport 为请求设置标头

我有不止一个ip可以上网。我正在请求选择界面。在这种情况下,我应该如何设置标题?


tcpAddr := &net.TCPAddr{

    IP: addrs[3].(*net.IPNet).IP, // Choosing ip address number 3

}

d := net.Dialer{LocalAddr: tcpAddr}

conn, err2 := d.Dial("tcp", "www.whatismyip.com:80")

if err2 != nil {

    log.Fatal(err2)

}


defer conn.Close()


transport := &http.Transport{

    Proxy:               http.ProxyFromEnvironment,

    Dial:                (&net.Dialer{LocalAddr: tcpAddr}).Dial,

    TLSHandshakeTimeout: 10 * time.Second,

}


client := &http.Client{

    Transport: transport,

}


response, err := client.Get("https://www.whatismyip.com/")

通常以这种方式设置标题:


req.Header.Set("name", "value")

但无法弄清楚如何将它们设置为我的代码。


我想它们必须设置在http.Transportor 中的某个地方http.Client。但具体如何?


富国沪深
浏览 373回答 1
1回答

烙印99

创建请求: req, err := http.NewRequest("GET", "https://www.whatismyip.com/", nil) if err != nil {  // handle error }设置标题: req.Header.Set("name", "value")使用client问题中的配置运行请求: resp, err := client.Do(req) if err != nil {     // handle error }如问题所示处理响应。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go