go - 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 代码不起作用。
解决方案
推荐阅读
- reactjs - React Enzyme 测试:找不到 react-redux 上下文值;请确保组件被包裹在一个
- windows - `path %path:"=%` 在批处理文件中有什么作用?
- python - 如果循环中有另一个元素要迭代,则无法迭代范围。这是为什么?
- express - 如何抑制快递:路由器日志?
- unity3d - 我需要使用 HTC Vive Cosmos Elite 测试 VR Unity 项目 - 但我们正在为 Quest 进行开发。我可以做些什么来区分这两者吗?
- azure-devops - 运行 databricks 工作区 import_dir 的 Azure 管道问题
- react-native - 新的 AbortController() 返回空对象
- java - Eclipse IDE 在 main 中发现错误,但 main 本身没有问题吗?
- r - 如何仅将带有数字的单元格从R中数据框中的字符转换为数字并保存到excel文件
- regex - 对干净的 URL 使用 IIS 重写:匹配“^”或“.*”之间有什么区别?