2013-09-05 5 views
0

У меня есть плагин NPAPI (Windows/Win32), который загружает zip-файл с сервера. Это не работает, если клиент находится за прокси-сервером. Как получить прокси-учетные данные от пользователя через мой плагин NPAPI? Я использовал HttpQueryInfo для обнаружения присутствия прокси, запросив его статус. Если возвращается «407», я использую InternetErrorDlg для получения учетных данных от пользователя, но Chrome (29.0.1547.66 m) падает при столкновении с линией. FF (19.0.2) работает хорошо.Возьмите учетные данные прокси от пользователя из плагина NPAPI

Есть ли еще способы сделать это? Подскажите пользователю ввести учетные данные прокси? Любая помощь в этом отношении будет очень признательна.

С большой благодарностью, LazyCoder7.

+0

Что вы используете для загрузки? NPN_GetURL? – taxilian

+0

У меня Windows, Mac и Linux версия этого плагина, и для каждой платформы я использую NativeCode. Для Win32 я использую InternetOpenUrl, HttpQueryInfo и InternetReadFileFunctions для загрузки файла. – LazyCoder7

ответ

1

Если вы используете API-интерфейсы браузера для загрузки, то прокси-сервер должен просто работать (tm). Как вы это делаете, вы, вероятно, можете использовать NPN_GetValueForURL, чтобы получить информацию прокси-сервера о новых браузерах; что вам нужно помнить, что вам запрещено блокировать основной поток, что, вероятно, является тем, что вы делаете, что приводит к его сбою. Получите учетные данные, используя HTML или что-то, а затем передайте их; можно использовать диалоговые окна Windows, чтобы сделать это, пока вы используете другой поток, и будьте осторожны, но гораздо проще обрабатывать его в javascript/html.

+0

Спасибо Таксилан, я тоже думал о том же, чтобы просто нажать URl и проверить наличие прокси-сервера, взять учетные данные из самого Html и перейти к плагину. – LazyCoder7

+0

Также я проверю часть, которую вы упомянули «Не блокировать основной поток». Я попытаюсь вызвать диалог для другого потока. Я не ударил эту вещь во время кодирования. Большое спасибо за этот момент. – LazyCoder7

+0

Наконец, на начальных этапах разработки я использовал NPN_GETURL для загрузки файла. Но за это время я столкнулся с некоторыми проблемами вроде того, что он извлек файл из CACHE, если он есть. Это нежелательно. Я не обошел эту проблему, и многие другие были там, я не помню. Затем был принудительно использован Native API, доступный для соответствующих платформ. – LazyCoder7