【发布时间】:2023-04-06 22:18:01
【问题描述】:
我正在尝试使用 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
互联网连接良好,我已经尝试了上述代码的其他替代方案,但它们似乎都不起作用。
请帮忙。
【问题讨论】:
-
它说它无法连接到给定的代理地址。如果 Internet 连接本身是否正常,这无关紧要 - 如果代理未启动、无法访问,或者您提供了错误的代理地址,那么与代理的连接仍然会失败。