一尘不染

在Go中通过代理获取URL时出错

go

这与另一个问题有关。我正在使用以下简单代码通过代理获取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))
    }
}

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

获取:连接到代理87.236.233.92:8080时出错:GetServByName:请求的名称有效,但是未找到请求类型的数据。

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


阅读 251

收藏
2020-07-02

共1个答案

一尘不染

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

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