首页 > 解决方案 > Go中通过https代理的HTTP请求不起作用

问题描述

我将在 Go 中通过 ssl 代理发送 http 请求。不幸的是,它总是失败。这是我尝试过的代码。

proxyUrl, err := url.Parse("https://" + proxyURLStr)

transport := &http.Transport{
    Proxy: http.ProxyURL(proxyUrl),
}

//adding the Transport object to the http Client
client := &http.Client{
    Transport: transport,
    Timeout:   60 * time.Second,
}

request, err := http.NewRequest("GET", "https://test.com", nil)
if err != nil {
    log.Print("Create Request Error - test.com ")
    return -2, invalid_data
}

random_agent := browser.Random()
request.Header.Set("User-Agent", random_agent)

// Make request
response, err := client.Do(request)
if err != nil {
    log.Println(err)
    current := time.Now()
    elapsed := current.Sub(start)
    log.Printf("test.com is not available. %02d, %02d ", int(elapsed.Minutes()), int(elapsed.Seconds()))
    return -2, invalid_data
}

我收到此错误:

net/http:在等待连接时取消请求(等待标头时超出 Client.Timeout)

我用 Python 编写了相同的函数并对其进行了测试——效果很好。但是 Go 代码不起作用。

标签: gosslhttpsproxyrequest

解决方案


推荐阅读