Я довольно новичок в протоколах HTTP с участием прокси и аутентификации. Я работаю над приложением, которое работает в Windows и использует сеть хоста для отправки / получения HTTP / S-запросов. Он также использует Libcurl, чтобы помочь передаче.

Тем не менее, у меня есть несколько проблем, когда я должен использовать прокси. Так как я нахожусь в сети, у меня есть прокси, определенный для определенных URL с файлом PAC. Поскольку Libcurl не поддерживает Javascript, я использую PACParser для анализа файла PAC и определения прокси.

Когда я использую прокси, я получаю аутентификацию 407. Я не уверен, как преодолеть проверку подлинности прокси. Я пробовал различные доступные настройки с CURL, такие как BASIC / DIGEST / NTLM. Ни один из них, кажется, не работает. Но если я жестко закодирую имя пользователя и пароль в запросе, я вижу, что запрос проходит.

Как я могу избежать жесткого кодирования имени пользователя / пароля и гарантировать, что использование прокси будет работать?

1 ответ1

0

Смотрите libcurl-tutorial (3) , раздел Переменные среды:

libcurl automatically checks and uses a set of environment
variables to know what proxies to use for certain
protocols. The names of the variables are following an
ancient de facto standard and are built up
as "[protocol]_proxy" (note the lower casing). Which makes
the variable 'http_proxy' checked for a name of a proxy to
use when the input URL is HTTP. Following the same rule, the
variable named 'ftp_proxy' is checked for FTP URLs. Again,
the proxies are always HTTP proxies, the different names of
the variables simply allows different HTTP proxies to be
used.

The proxy environment variable contents should be in the
format "[protocol://][user:password@]machine[:port]".

Таким образом, вы должны ввести прокси в настройках переменных среды, а не в настройках сети.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .