这与this other question有关。我正在使用这个简单的代码通过代理获取URL:
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
)
func main() {
proxyUrl, err := url.Parse("87.236.233.92:8080")
httpClient := &http.Client { Transport: &http.Transport { Proxy: http.ProxyURL(proxyUrl) } }
response, err := httpClient.Get("http://stackoverflow.com")
if err != nil {
fmt.Println(err.Error())
} else {
body, _ := ioutil.ReadAll(response.Body)
fmt.Println("OK: ", len(body))
}
}
如果我运行此代码,我收到此错误:
获取http://stackoverflow.com:http:错误连接到代理87.236.233.92:8080:GetServByName:请求的名称有效,但未找到所请求类型的数据。
我知道代理地址是有效的,如果我通过其他方式通过代理获取URL,它就可以工作。知道我为什么会收到这个错误吗?
答案 0 :(得分:9)
使用http://
指定您的代理,它应该有效,例如
proxyUrl, err := url.Parse("http://87.236.233.92:8080")
if err != nil {
fmt.Println("Bad proxy URL", err)
return
}