#delphi #proxy #wininet #proxy-authentication
#delphi #прокси #wininet #прокси-аутентификация
Вопрос:
Я написал приложение на Delphi, которому требуется связь с удаленным веб-сервером. Я передаю флаг INTERNET_OPEN_TYPE_PRECONFIG в функцию InternetOpen, чтобы инициализировать использование моим приложением функций WinInet и, таким образом, мое приложение извлекает конфигурацию Интернета пользователя из реестра.
NetHandle := InternetOpen('WebTool', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if Assigned(NetHandle) then
begin
try
hConnect := InternetConnect(NetHandle, PChar(ServerName), ServerPort,
nil, nil, INTERNET_SERVICE_HTTP, 0, 1);
if Assigned(hConnect) then
begin
try
// Open the request
hRequest := HttpOpenRequest(hConnect, PChar('POST'),
PChar(ServerScript), nil, nil, nil,
HTTPOpenRequestFlags, 0);
if Assigned(hRequest) then
begin
Возможно, из-за моего невежества я полагал, что это позволяет осуществлять связь с удаленным веб-сервером, используя определенные пользователем настройки Интернета, будь то прямое подключение или через прокси. Это, безусловно, работает через прокси-сервер моей компании.
Однако теперь я столкнулся с одним клиентом, для которого вышеуказанное не позволяет ему получить доступ. Вместо этого он видит «Требуется проверка подлинности прокси» (код состояния HTTP 407).
Должно ли это обрабатывать мое приложение (например, предоставить форму для ввода данных аутентификации прокси-сервера и передачи их с моими HTTP-запросами)? Есть ли способ получить эту информацию автоматически?
Или это просто проблема конфигурации, которую ИТ-отдел заказчика может легко решить?
Любые указания были бы высоко оценены.
Комментарии:
1. чтобы получить справку, добавьте код, который вы используете для получения информации о прокси.
Ответ №1:
Возможно, вам потребуется выполнить проверку подлинности, в зависимости от того, какие методы аутентификации поддерживает прокси-сервер (об этом будет сказано в ответе 407). Смотрите http://msdn.microsoft.com/en-us/library/aa384220 (ВЕРСИЯ 85).aspx