Windows PAC 结果可配置 R curl 句柄
针对实际 URL 查询 Windows 的代理决策,并将返回的单个端点应用到显式的 R curl 句柄。
在 Windows 上,R curl 包提供 ie_get_proxy_for_url,用于获取针对某个目标地址的系统决策。对于只返回一个受支持代理端点的策略:
target <- 'https://data.example/report.csv'
selected <- curl::ie_get_proxy_for_url(target)
handle <- curl::new_handle(
proxy = if (is.null(selected)) '' else selected
)
result <- curl::curl_fetch_memory(target, handle = handle)该辅助函数可以评估自动配置或自动发现。这次查询本身可能耗时,因为获取并执行 PAC 脚本可能需要网络操作。
其 NULL 结果表示没有选中任何代理。示例把该结果映射为空代理选项,这样 libcurl 就不会代用继承来的环境代理。
如果结果包含协议映射或 多个候选,在把它当作单个 libcurl 端点之前请先检查。Windows 配置存储返回的列表并不会自动就是一个有效的单一代理 URL。
当策略可能对不同目标采用不同路由时,请针对其他目标重复选择。不要只评估一个主机,就把结果当作通用的 HTTP 和 HTTPS 路由保存。
查询选择的是路由,而不是代理身份。需要时在句柄上配置账号和受支持的身份验证方式。无需解锁 curl 的命名空间并全局替换 new_handle。