ALL_PROXY 是 R 中 curl 请求的兜底路径
在 R 进程里设置完整的代理 URL,再考虑按协议区分的变量、绕过规则以及显式的 curl handle 选项。
R 的 curl 包使用 libcurl。因此,即使 curl_fetch_memory 的调用里没有代理参数,进程环境中的代理也可能生效:
Sys.setenv(ALL_PROXY = "http://proxy.example:8080")
result <- curl::curl_fetch_memory("https://www.example.org/")
请在准备请求之前设置环境。使用完整的端点,包括预期的 scheme 和 port,而不要假设只有主机名就代表正确的协议。对于获准访问公开站点的请求,HTTP 代理列表可为示例中的 HTTP 代理 URL 提供候选。
ALL_PROXY 是兜底路径。目标协议对应的代理环境变量会优先,匹配的 NO_PROXY 绕过规则仍可能选择直连。当修改 ALL_PROXY 看起来没有效果时,检查这些值。
对于只属于某个 handle 的路径,请显式配置:
handle <- curl::new_handle(proxy = "http://proxy.example:8080")
result <- curl::curl_fetch_memory(
"https://www.example.org/", handle = handle
)
handle 的代理选项会覆盖环境中的代理选择;绕过策略仍然相关。显式留空的代理选项会禁用代理,即使存在代理环境变量。
这些设置影响正在运行的 R 进程和 curl 的请求。启动另一个 R 会话,或使用采用其他网络实现的包,可能得到不同的路径。