У нас есть приложение Flash, которое подключается к веб-службе REST WCF, возвращающей данные json.
Мы используем URLRequest / URLLoader с запросами POST, а не библиотеку более низкого уровня с использованием сокетов, таких как as3httpclientlib.
Приложение нормально работает в обычном режиме, но когда мы находимся за корпоративным прокси-сервером (т. Е. На вкладке «Подключение к Internet Explorer» определен прокси-сервер), некоторые запросы возвращают код состояния HTTP 502 - Ошибка просмотра DNS. (Мы используем Fiddler для проверки трафика). Соединение работает нормально для первых нескольких запросов, но затем, кажется, умирает - с этими 502 ошибками.
Что может быть причиной этого?
Я слышал, что использование низкоуровневого программирования сокетов может вызвать проблемы с прокси-серверами в корпоративных средах - но это не то, что мы используем здесь.
EDIT:
При дальнейшем расследовании (с использованием fiddler) происходит следующее:
- Выполнен первый запрос POST.
- Прокси-сервер возвращает 407 (запрос кеша отклонен - не аутентифицирован прокси-сервером)
- Запрос выполняется снова с заголовком авторизации прокси
- Прокси возвращает 407 с каким-то заголовком возврата прокси-аутентификации.
- Оригинальный запрос делается еще раз - на этот раз с прокси-аутентификацией, но мой
Заголовок авторизации («authorization: username: password») был удален прокси-сервером и, следовательно, запрос не выполнен.
Не уверен, как обойти это ...
EDIT:
Я добавил свой заголовок авторизации, используя URLRequest в ActionScript. Прокси-сервер использовал проверку подлинности NTLM. Добавленный мной заголовок авторизации был удален на шаге 2.
Я обнаружил, что если бы я использовал заголовок со случайным именем типа «Безопасность» вместо «Авторизация», тогда заголовок не был удален.