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 を変えても効果がないように見えるときは、これらの値を確認してください。

1 つのハンドルに属する経路については、明示的に設定します:

handle <- curl::new_handle(proxy = "http://proxy.example:8080")
result <- curl::curl_fetch_memory(
  "https://www.example.org/", handle = handle
)

ハンドルのプロキシオプションは環境からのプロキシ選択を上書きしますが、バイパス方針は引き続き関係します。明示的に空のプロキシオプションは、プロキシ環境変数があってもプロキシ利用を無効にします。

これらの設定は実行中の R プロセスと curl のリクエストに影響します。別の R セッションを開始したり、別のネットワーク実装を持つパッケージを使ったりすると、異なる経路になることがあります。

関連記事