【问题标题】:Using system Proxy in RestClient在 RestClient 中使用系统代理
【发布时间】:2018-02-28 12:55:21
【问题描述】:

我使用 RestClient 通过 Internet 获取页面。我制作的这个脚本也是通过使用RestClient.proxy = "http://proxy.example.com/" 启用的代理。 但我并不总是使用代理。因此,我希望脚本自动读取系统设置,而不是在脚本中手动设置代理。

GitHub 文档指出:

代理 URL 通常设置在环境变量中,因此您可以这样做以使用系统配置使用的任何代理:

RestClient.proxy = ENV['http_proxy']

我看不出这如何检测系统代理是否在此处。它虽然可以检测到我正在使用的代理地址我想。

  • 另外,我该如何具体使用它?
  • 还有如何指定代理端口?
  • 以及如何获取系统的代理设置,然后 跟进RestClient.proxy = "http://proxy.example.com/" IF 代理已启用。

【问题讨论】:

  • 我是 Windows 用户。

标签: ruby proxy rubygems rest-client


【解决方案1】:

这并没有什么神奇之处。

http_proxy 假定由用户或管理员设置,并且可以是 http_proxy=http://username:password@proxy.example.org:8080 的形式,凭据和端口都是可选的。

这些都不会从系统中神奇地导入; *nix 系统通常没有“系统代理设置”,我认为您无法获得网络设置中确定的 Windows 代理设置。

【讨论】:

  • 好的,我得到了实际的方式,通过它我可以使用地址中的端口,但我绝对可以通过system("REG ADD \"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\" /v ProxyEnable /t REG_DWORD /d 1 /f") 设置windows代理所以是不可能阅读这个注册表以及一些如何?
【解决方案2】:

restClient.Proxy = new System.Net.WebProxy(yourProxyServer, yourProxyPort);

【讨论】:

    【解决方案3】:

    This 回答告诉如何通过 cmd 添加代理。也许这可能会有一些用处。您可以使用system() 运行这些命令。您可能不需要在 RestClient 中专门指定代理。 !UNTESTED! 这也有一个端口选项。 windows 代理和终端代理不同。

    因此,希望您的第二个和第三个问题得到解答。

    【讨论】:

    • 谢谢,但这不是我的问题。这样,如果我使用代理,我仍然需要手动输入。
    猜你喜欢
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2011-05-29
    • 2013-05-03
    • 2017-10-13
    • 1970-01-01
    相关资源
    最近更新 更多