Go 无法连接到HTTP代理

Go 无法连接到HTTP代理,go,Go,go版本:go1.13.5 linux/amd64 我正在使用“x/net/proxy”连接“http\u代理” 我已参考了以下代理页面: 要获取代理信息,我已将环境变量“all_proxy”设置为所需的代理“”,并执行tcp连接,但出现以下错误: [网络错误:socks连接tcp 192.130.0.10:3200->mx.eu1.mico.io:8883:读取tcp 172.17.0.2:48118->192.130.0.10:3200:读取:对等方重置连接] 我看过“x/net/prox

go版本:go1.13.5 linux/amd64

我正在使用“x/net/proxy”连接“http\u代理”

我已参考了以下代理页面:

要获取代理信息,我已将环境变量“all_proxy”设置为所需的代理“”,并执行tcp连接,但出现以下错误:

[网络错误:socks连接tcp 192.130.0.10:3200->mx.eu1.mico.io:8883:读取tcp 172.17.0.2:48118->192.130.0.10:3200:读取:对等方重置连接]

我看过“x/net/proxy”,似乎不支持“http\U代理”,而支持“SOCKS5”代理。我有类似的“http_代理”实现,但不幸的是,它不起作用

我创建了一个用于非代理环境的示例代码(带有端口1883),请建议如何启用“http\U代理”或“https\U代理”支持?

package main

import (
    "fmt"
    "os"

    "golang.org/x/net/proxy"
)

//The host address which we want to connect with the proxy
var host = "google.com:80"

func main() {
    fmt.Println("Inside main...")

    //Setting the proxy before starting the application
    if os.Getenv("http_proxy") == "" {
        os.Setenv("http_proxy", "http://192.130.0.10:3200")
    }
    os.Setenv("all_proxy", os.Getenv("http_proxy"))

    if os.Getenv("all_proxy") != os.Getenv("http_proxy") {
        fmt.Println("Environment variables are not matching...")
        return
    }

    fmt.Println("System proxy is:", os.Getenv("all_proxy"))

    proxyDialer := proxy.FromEnvironment()

    fmt.Println("Connecting to...", host)

    conn, err := proxyDialer.Dial("tcp", host)
    if err != nil {
        fmt.Println("Unable to dial...", err)
        return
    }
    fmt.Println("Connected...", conn)
}

你的目的是什么? 如果需要对http请求使用http代理服务器,则只需配置http客户端,而无需使用其他包:

主程序包
进口(
“fmt”
“net/http”
“网络/网址”
“时间”
)
func main(){
proxyUrl,错误:=url.Parse(“http://192.130.0.10:3200")
如果错误!=零{
//托多对付我
恐慌(错误)
}
cl:=http.Client{
传输:&http.Transport{
代理:http.ProxyURL(ProxyURL),
},
超时:3000*时间。毫秒,
}
resp,err:=cl.Get(“http://google.com")
如果错误!=零{
//托多对付我
恐慌(错误)
}
//如何处理响应
fmt.Println(分别)
}

在大多数情况下,您不必做任何特殊的事情。嗨,伊戈尔,谢谢你的回答。。。以下是我的使用案例:
-我使用“paho.mqtt.golang”连接到各种云,这是一种基于TCP的方法,我使用1883和8883端口进一步通信,mqtt库使用“golang.org/x/net/proxy”处理代理,但只支持“SOCKS5”代理我使用的是http的公司代理,因此不能使用SOCKS来实现相同的代理(因此,我想为相同的代理实现http代理)我将创建一个连接并使其保持打开状态,以便稍后在收到客户端请求后立即使用它。
@IAMSKU:HTTP代理与SOCKS不同,它不是通用的TCP代理。虽然有人可能会尝试使用连接请求通过隧道连接到任意端口,但请求通常仅限于几个端口。换句话说:您可能无论如何都无法对非HTTP协议使用HTTP代理。
Output:
Inside main...
System proxy is: http://192.130.0.10:3200
Connecting to... google.com:80
Unable to dial... dial tcp 172.217.23.174:80: connect: connection timed out