【问题标题】:Error when fetching URL through proxy in Go在 Go 中通过代理获取 URL 时出错
【发布时间】:2013-02-03 06:07:45
【问题描述】:

这与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))
    }
}

如果我运行此代码,我会收到此错误:

Get http://stackoverflow.com: http: error connection to proxy 87.236.233.92:8080: GetServByName: 请求的名称有效,但未找到请求类型的数据。

我知道代理地址是有效的,如果我通过代理通过其他方式获取 URL,它就可以工作。知道为什么我会收到此错误吗?

【问题讨论】:

    标签: url proxy go fetch


    【解决方案1】:

    使用http:// 指定您的代理,它应该可以工作,例如

    proxyUrl, err := url.Parse("http://87.236.233.92:8080")
    if err != nil {
        fmt.Println("Bad proxy URL", err)
        return
    }
    

    【讨论】:

    • 太棒了,非常感谢,我开始认为这是 Go 运行时中的一些错误。
    猜你喜欢
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 2022-11-11
    • 2014-05-14
    • 2017-07-29
    • 2010-09-12
    相关资源
    最近更新 更多