Решение проблемы с проверкой подлинности прокси - PullRequest
0 голосов
/ 16 мая 2011

Я написал приложение 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 голос
/ 17 мая 2011

Вам может потребоваться обработать аутентификацию, в зависимости от того, какие методы аутентификации поддерживает прокси (он сообщит вам в ответе 407).Смотри http://msdn.microsoft.com/en-us/library/aa384220(VS.85).aspx

...