使用SOCKS代理发出HTTP请求



我试图使用SOCKS5代理发出HTTP(s)请求。我有下面的代码,在执行时抛出一个错误。

代码:

package main
import (
"crypto/tls"
"fmt"
"io/ioutil"
"net/http"
"net/url"
)
const (
PROXY_ADDR = "socks5://175.101.15.35:84"
URL        = "https://api.ipify.org?format=json"
)
func main() {
url_i := url.URL{}
url_proxy, _ := url_i.Parse(PROXY_ADDR)
transport := http.Transport{}
transport.Proxy = http.ProxyURL(url_proxy)                        // set proxy
transport.TLSClientConfig = &tls.Config{InsecureSkipVerify: true} //set ssl
client := &http.Client{Transport: &transport}
// client.Transport = &http.Transport{Proxy: http.ProxyURL(url_proxy)}
resp, err := client.Get(URL)
if err != nil {
fmt.Println(err.Error())
}
responseBody, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(responseBody))
}

错误:

Get "https://api.ipify.org?format=json": proxyconnect tcp: dial tcp 175.101.15.35:84: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x40 pc=0x82c909]
goroutine 1 [running]:
main.main()
C:/Users/XXX/main.go:29 +0x189
exit status 2

互联网连接很好,我已经尝试了上述代码的其他替代方案,但它们似乎都不起作用。

请帮助。

如错误信息所示,这一行的err不是nil

resp, err := client.Get(URL)
if err != nil {
fmt.Println(err.Error())
return // need to exit here, because there is nothing in response
}

请检查端点175.101.15.35:84的可达性

最新更新