Разрабатываю Java-приложение для модема GPRS (Siemens TC65). Я несколько раз вызываю метод подключения HttpConnection к разным URL-адресам. Иногда он работает нормально, но иногда меня перенаправляет мой оператор (код HTTP 302). Я следую URL-адресу, указанному в заголовке Location, он возвращает 200, но это не та страница, которую я хочу.
Если я использую SIM-карту в gsm-ручке и открываю доступ через браузер, иногда происходит такое же перенаправление, но в конечном итоге я попадаю на нужную страницу. Проблема в том, что модем не выполняет Javascript, поэтому я проанализировал, что делает javascript, и процедура следующая:
страница1 -> страница2 -> страница3 -> желаемая страница
Page1 и page2 кодируют URL и параметры в кодировке base64, page3 - это .aspx. Поэтому каждый раз, когда я получаю перенаправление, я кодирую64 свой URL и отправляю на страницу .aspx, страница .aspx возвращает 302 с желаемой страницей, декодированной в заголовке Location. Он даже возвращает файл cookie с ASP.NET_SessionId, который я сохраняю и отправляю в следующем запросе.
Но даже если я сделаю все это и следую URL-адресу, возвращаемому .aspx (который совпадает с тем, с которого я начинаю), он просто начинается с самого начала, и я получаю бесконечный цикл перенаправлений.
Я могу опубликовать код, но не думаю, что у него есть какие-то проблемы, потому что он иногда работает нормально ... Проблема в том, что оператор выполняет последовательные перенаправления, а не запускает браузер.
Что я должен делать по-другому, пытаясь выполнить перенаправление с сервера aspx?
У кого-нибудь была подобная проблема? Буду очень признателен за любую помощь.
Заранее спасибо! Хьюго
HttpConnection
запросом, переходящим в бесконечный цикл? Одна из возможностей (только предположение) заключается в том, что он обнюхивает User-Agent и меняет его поведение. В заголовках может быть что-то еще. - person Charles Forsythe   schedule 02.04.2013