我有一条到服务器的ssh隧道(通过端口:9988)。我希望通过Go中的此端口路由我的http GET / POST请求。在Java中,我将指定DsocksProxyHost和DsocksProxyPort。我在Go中寻找类似的选项。预先感谢您的帮助。
使用以上注释中提供的信息,这是一个有关如何通过SOCKS代理隧道HTTP请求的有效示例:
package main import ( "fmt" "io/ioutil" "net" "net/http" "time" "golang.org/x/net/proxy" ) func main() { url := "https://example.com" socksAddress := "localhost:9998" socks, err := proxy.SOCKS5("tcp", socksAddress, nil, &net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, }) if err != nil { panic(err) } client := &http.Client{ Transport: &http.Transport{ Dial: socks.Dial, TLSHandshakeTimeout: 10 * time.Second, }, } res, err := client.Get(url) if err != nil { panic(err) } content, err := ioutil.ReadAll(res.Body) res.Body.Close() if err != nil { panic(err) } fmt.Printf("%s", string(content)) }