猿问

通过代理连接到服务器

我想通过我拥有的代理服务器连接到服务器。我正在寻找类似于 Python 的 HTTPConnection.set_tunnel 的东西,golang 中是否有类似的东西?


- - 编辑 - - -


我正在尝试创建到允许自签名证书和通过代理传输的服务器的连接,此代码是否可以正常工作?


func CreateProxyClient(serverProxy string, sid string, portProxy int) (*Client, error) {

    http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}


    proxyUrl, _ := url.Parse(serverProxy+":"+strconv.Itoa(portProxy))

    tr := &http.Transport{

        Proxy: http.ProxyURL(proxyUrl),

    }

    var netClient = &http.Client{

        Timeout: time.Second * 10,

        Transport: tr,

    }

    return &Client{netClient, serverProxy, sid}, nil

}


开满天机
浏览 87回答 1
1回答

神不在的星期二

HTTP_PROXY您可以为 HTTP 或HTTPS设置环境变量HTTPS_PROXY,以便默认的 http 传输将使用它。此外,作为替代方案,您可以http.Transport自己创建Proxy字段设置为http.ProxyURL函数调用或使用您的自定义实现。例子:proxyURL, _ := url.Parse("http://proxy.example.com:port")http.DefaultTransport = &http.Transport{    Proxy: http.ProxyURL(proxyURL),}// request using proxyresp, _ := http.Get("https://google.com"))
随时随地看视频慕课网APP

相关分类

Go
我要回答