小编djb*_*b72的帖子

如何使用默认的 Web 代理设置在 R 中配置 curl 包?

我在商业环境中使用 R,其中外部连接全部通过 Web 代理进行,因此我们需要指定代理服务器地址并确保我们使用 Windows 身份验证连接到它。

我已经有了将 RCurl 和 httr 包配置为默认使用这些设置的代码 - 即

httr::set_config(config(
  proxy = "my.proxy.address", 
  proxyuserpwd = ":", 
  proxyauth = 4
   ))
Run Code Online (Sandbox Code Playgroud)

或者

opts <- list(
  proxy = "my.proxy.address",
  proxyuserpwd = ":", 
  proxyauth = 4
)
RCurl::options(RCurlOptions = opts)
Run Code Online (Sandbox Code Playgroud)

但是,在最近的几个案例中,我发现依赖curl包来发出 Web 请求的包 - 例如xml2::read_xml- 我找不到任何方法来设置相同的代理选项,因此默认情况下它们会被选中并由 curl 使用。

如果我自己直接使用 curl,我可以在新句柄上设置选项,以下代码足以成功工作:

  h = new_handle(proxy = "my.proxy.address",
                 proxyuserpwd = ":")
  con = curl(url,handle = h)
  page = xml2::read_xml(con)
Run Code Online (Sandbox Code Playgroud)

...但是当 curl 的使用被埋在其他人的功能中时,这没有任何帮助!

或者,我知道我可以为代理地址设置一个环境变量,如下所示:

Sys.setenv(https_proxy = "https://my.proxy.address")
Run Code Online (Sandbox Code Playgroud)

... libcurl …

curl r http-proxy xml2

7
推荐指数
1
解决办法
2301
查看次数

标签 统计

curl ×1

http-proxy ×1

r ×1

xml2 ×1