Пакет curl в R использует libcurl. Поэтому прокси из окружения процесса может применяться даже тогда, когда у curl_fetch_memory нет аргумента прокси в вызове:

Sys.setenv(ALL_PROXY = "http://proxy.example:8080")
result <- curl::curl_fetch_memory("https://www.example.org/")

Задайте окружение до подготовки запроса. Используйте полную конечную точку, включая нужные scheme и port, вместо того чтобы предполагать, что одного имени хоста достаточно для правильного протокола. Для разрешённых запросов к публичным сайтам список HTTP-прокси даёт кандидатов для URL HTTP-прокси из примеров.

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 или использование пакета с другой реализацией сети может дать другой маршрут.

Похожие статьи