返回顶部
首页 > 资讯 > 后端开发 > GO >不考虑 HTTP_PROXY 环境变量
  • 895
分享到

不考虑 HTTP_PROXY 环境变量

2024-04-04 23:04:14 895人浏览 八月长安
摘要

对于一个golang开发者来说,牢固扎实的基础是十分重要的,编程网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《不考虑 Http_PROXY 环境变量》,主要介绍了,希望对大家的知识积累

对于一个golang开发者来说,牢固扎实的基础是十分重要的,编程网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《不考虑 Http_PROXY 环境变量》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我在互联网上读到,Go读取http_proxy环境变量并为默认客户端设置代理。但是,它对我不起作用,我不知道为什么。

我使用的是 ubuntu 20.04,go 是 1.16,所以我升级到 1.17,但还是一样。

我有下面的程序,并在终端中执行: http_proxy="http://localhost:8000" go run req.go 我看到第一个 println 打印出正确的值,但未使用代理。

func main() {
    fmt.println(os.getenv("http_proxy"))
    client := &http.client{}
    resp, err := client.get("http://localhost:8090/vm/1")
    if err != nil {
        log.fatal(err)
    }
    body, err := ioutil.readall(resp.body)
    if err != nil {
        log.fatal(err)
    }
    fmt.println(string(body))
}

如果我修改代码并显式设置代理,它就可以工作。

u, err := url.Parse("http://localhost:8000")
if err != nil {
    log.Fatal(err)
}
client := &http.Client{
    Transport: &http.Transport{Proxy: http.ProxyURL(u)},
}


正确答案


深入研究源代码后,我找到了主要原因和解决方法。这是评论行为,但相当深刻。来源 opensource.google/x/net/http/httpproxy/proxy.go line 118 和 line 181 正是负责的 if

问题是,当请求具有 url localhost127.x.x.x 时,http_proxy 会被忽略。但您可以轻松地将自定义 uri 添加到 /etc/hostsc:\windows\system32\drivers\etc\hosts

127.0.0.1    localserver.loc

然后所有请求都必须发送至 localserver.loc:8090 而不是 localhost:8090。它会像一个魅力一样工作。

我假设您将 no_proxy 变​​量设置为“localhost”,这是受 defaulttransport 尊重的。

当使用http.proxyurl()显式设置代理时,无论no_proxy如何,都会使用该代理。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~

您可能感兴趣的文档:

--结束END--

本文标题: 不考虑 HTTP_PROXY 环境变量

本文链接: https://lsjlt.com/news/595775.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 不考虑 HTTP_PROXY 环境变量
    对于一个Golang开发者来说,牢固扎实的基础是十分重要的,编程网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《不考虑 HTTP_PROXY 环境变量》,主要介绍了,希望对大家的知识积累...
    99+
    2024-04-04
  • 环境变量之java环境变量
    为什么要配置环境变量? 在配置环境变量之前,首先理解什么是环境变量? 通俗来讲,环境变量是用户 预配置的将来会使用到的可执行文件的物理位置,众所周知,操作系统中几乎所有的软件都是基于如windows操...
    99+
    2023-09-13
    java jvm
  • Oracle安装TNS_ADMIN环境变量设置参考
    很多oracle产品都有自己的TNS文件,如果你的系统里装了多个Oracle的产品的话,那么客户端连instance的时候,到底是使用那个tnsnames.ora呢?这个时候就需要看...
    99+
    2024-04-02
  • Android环境变量&macOS环境变量配置
    关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 目录 一、导...
    99+
    2023-10-28
    android macos android studio
  • macOs环境变量
    做代码开发,各种工具都需要设置系统环境变量,在macos系统里面,设置环境变量与windows的配置过程有很大差别,又因为系统升级原因,导致了一些遗留问题,对于初学用户,不是很容易理解这些内容。本文对于常见的问题,进行一些讲解。 一、ma...
    99+
    2023-09-15
    macos Powered by 金山文档
  • mac环境变量
    Mac 环境变量设置 mac 一般使用bash作为默认shell Mac系统的环境变量,加载顺序为: /etc/profile /etc/paths ~/.bash_profile ~/....
    99+
    2023-09-09
    Mac Apple 环境变量
  • 【Linux】环境变量
    大家好我是沐曦希💕 文章目录 一、基本概念二、常见的环境变量1.查看环境变量的方法 三、系统调用获取环境变量四、设置环境变量1.子进程继承2.PWD 五、命令行参数六、代码获取环境变量七、写在最后1.环...
    99+
    2023-08-23
    linux bash 运维 vim 服务器
  • RHEL ORACLE 环境变量
    export TMP=/tmpexport TMPDIR=$TMPexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/prod...
    99+
    2024-04-02
  • w11 php 环境变量
    PHP 安装  解压完成后  进入目录 php -v   得到版本号就OK,配置环境变量  安装composer   全部下一步就可以了 命令行中  composer  出现composer版本号安装没问题,...
    99+
    2023-09-20
    php java 服务器
  • vue 开发环境和生产环境设置不同的变量
    在 Vue 开发中,我们很常见要在不同的环境下设置不同的变量。例如在 development 环境下,我们可能需要打开一些调试工具,而在 production 环境下,我们则需要关闭这些调试工具来提高应用的性能。这时候,我们就需要在开发环境...
    99+
    2023-05-24
  • sqlplus 环境变量设置
    $ORACLE_HOME/sqlplus/admin/glogin.sql 这个文件可以设置登录sqlplus后的环境变量 set linesize 200 pagesize 100col segment_...
    99+
    2024-04-02
  • linux配置环境变量
    第一种方法.配置全局的环境变量 第一步(非必须):可以输入export命令,查看已有的环境变量 2.第二步:输入 vi /etc/profile 进入配置文件 3.第三步:如果是新增环境变量的话,...
    99+
    2023-09-15
    linux 服务器 运维
  • maven配置环境变量
    Maven 是一个基于 Java 的工具,所以需要安装 JDK这是前提。 接下来记录下maven配置环境变量 1.maven的安装 下载地址:https://maven.apache.org/download.cgi 或者你也可以点击a...
    99+
    2023-08-30
    maven java spring
  • Java配置环境变量
    先去官网下载对应系统的jdk,下载路径放同一文件路径下,配置JAVA_HOME(表示你的jdk安装路径),配置jdk的根目录(表示对应的jdk安装路径)。 配置Path里的%\JAVA_HOME%\jre\bin运行时环境和开发环境%\JA...
    99+
    2023-08-31
    java 开发语言
  • JDK环境变量配置
    在Windows系统中配置JDK的环境变量,可以按照以下步骤进行:1. 打开电脑的控制面板。2. 点击"系统和安全"。3. 点击"系...
    99+
    2023-09-06
    JDK
  • 配置anaconda环境变量
    conda环境变量的配置 配置环境变量找到anaconda安装位置打开环境变量配置设置输入python命令跳入商店问题 总结 配置环境变量 找到anaconda安装位置 ...
    99+
    2023-09-06
    python 开发语言
  • 配置JDK环境变量
    一、安装JDK及配置环境变量 安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。(不能都安装在java文件夹的根目录下,jdk...
    99+
    2023-09-10
    java 前端 服务器 tomcat
  • tomcat环境变量配置
    要配置Tomcat的环境变量,需要执行以下步骤:1. 打开Tomcat的安装目录,找到`bin`文件夹。2. 复制该目录的路径(例如...
    99+
    2023-09-21
    tomcat
  • JDK配置环境变量
    要配置JDK的环境变量,您可以按照以下步骤进行操作:1. 下载并安装JDK:您可以从Oracle官方网站下载适用于您的操作系统的JD...
    99+
    2023-09-13
    JDK
  • python 获取环境变量
    python 获取环境变量 参考 https://docs.python.org/2/library/os.html 使用os.environ获取环境变量字典 import os env_dist = os.environ #...
    99+
    2023-01-31
    环境变量 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作