gpt4 book ai didi

去绕过代理

转载 作者:数据小太阳 更新时间:2023-10-29 03:11:40 25 4
gpt4 key购买 nike

我如何绕过(忽略代理和不使用)Go 中的代理?

我非常想 curl 或 http。访问一个网站并检查响应代码。

我有这个:

os.Setenv("HTTPS_PROXY", "")
os.Setenv("HTTP_PROXY", "")

//Make Request and Check for Response

resp, err := http.Get("http://interneIP:80")
if err != nil {
log.Fatal(err)
}

fmt.Println("HTTP Response Code : " + strconv.Itoa(resp.StatusCode))

if resp.StatusCode != 200 {
fmt.Println("Not OK")
} else {
fmt.Println("HTTP OK")
}

但是无法解析 Setenv 并且使用其他方法我得到了相同的无法解析为 url 的错误。那么我如何才能忽略我的代理呢?

最佳答案

您可以创建自己的 http roundtripper 传输,您可以看到 roundtripper 从 env vars 中提取代理,当您想要绕过时,您必须将其设置为 nil:

https://golang.org/pkg/net/http/#RoundTripper

以下是自定义 http 客户端设置的示例: https://blog.abhi.host/blog/2016/02/27/golang-creating-https-connection-via/

默认传输文档还提到您可以使用 NO_PROXY 环境变量从默认代理中排除特定的 url/域,这可能适用于您的用例,例如

NO_PROXY="*.aventail.com,home.com,.seanet.com"

我猜想在任何情况下你都需要在创建客户端之前设置环境变量,所以如果你想有时使用代理有时不使用代理,也许只需让两个客户端使用不同的环境变量。

关于去绕过代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50152870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com