Я использую R в коммерческой среде, где все внешние подключения проходят через веб-прокси, поэтому нам нужно указать адрес прокси-сервера и убедиться, что мы подключаемся к нему с аутентификацией Windows.
У меня уже есть код, который настроит пакеты RCurl и httr для использования этих параметров по умолчанию, т.е.
httr::set_config(config(
proxy = "my.proxy.address",
proxyuserpwd = ":",
proxyauth = 4
))
or
opts <- list(
proxy = "my.proxy.address",
proxyuserpwd = ":",
proxyauth = 4
)
RCurl::options(RCurlOptions = opts)
Однако в последнее время я обнаружил несколько пакетов, которые зависят от пакета curl для создания веб-сайтов. запросы - например xml2::read_xml
- и я не могу найти способ установить те же параметры прокси-сервера, чтобы они подбирались по умолчанию и использовались curl.
Если я сам использую curl, я могу установить параметры для нового дескриптора, и для успешной работы достаточно следующего кода:
h = new_handle(proxy = "my.proxy.address",
proxyuserpwd = ":")
con = curl(url,handle = h)
page = xml2::read_xml(con)
... но это не поможет, когда использование curl скрыто в чужой функции!
В качестве альтернативы я знаю, что могу настроить переменную среды для прокси-адреса, например:
Sys.setenv(https_proxy = "https://my.proxy.address")
... и libcurl его подхватывает. Но если я сделаю именно это, то получу ошибку аутентификации прокси-сервера HTTP 407. Есть ли способ указать пустое имя пользователя / пароль (как это делает настройка proxyuserpwd), чтобы мы аутентифицировались с учетными данными Windows? Также не представляется возможным указать параметр proxyauth в качестве переменной среды.
Может ли кто-нибудь предложить решение или какие-либо предложения, пожалуйста?