Я нашел проблему. У меня есть сервер, который использует заголовок User Agent для идентификации устройства, которое подключается к нему. Но когда я подключаюсь к серверу с помощью HttpURLConnection, я не получаю заголовка User Agent, но когда я подключаюсь к браузеру, он отправляет правильный User Agent.HttpURLConnection в android не отправляет правильный заголовок User-Agent
Для тестирования я использую сервер эха, который отвечает заголовками, найденными в запросе.
Когда я подключаюсь к браузеру, я получаю: например: User-Agent: Mozilla/5.0 (Linux; U; Android 1.5; en-fr; HTC Hero Build/CUPCAKE) AppleWebKit/528.5 + (KHTML, как и Gecko) Версия/3.1.2 Mobile Safari/525.20.1 Up.Link/6.3.1.20.06.3.1.20.0.
Но когда я соединяю с помощью кода с URLConnection я получаю:
User-Agent: UNAVAILABLE.
Кто-нибудь знает, что мы получаем разные формы поведения? Как я могу подключиться так же, как браузер?
EDIT:
Что я на самом деле нужно не только заголовок User-Agent, я также нужны специальные заголовки (х-до-subno на самом деле). Этот заголовок добавляется APN оператора, но по какой-то причине, когда я соединяюсь по коду, заголовки не добавляются в запрос.
Из браузера: browser http://bannergame.googlecode.com/files/device_browser.png
Из кода: code http://bannergame.googlecode.com/files/device_code.png
Спасибо,
Я думаю, вы найдете, что большинство библиотек HTTP-соединений не отправляют сам User-Agent, но предоставляют способы добавления заголовков в запрос, чтобы вы могли добавить свой собственный значащий. –
На самом деле не рекомендуется обманывать User-Agent, есть множество проблем, с которыми вы столкнетесь с неизвестными и лживыми агентами, блокируя программное обеспечение , прокси и кеши. Если вы можете найти какой-либо другой способ, чтобы сигнализировать, что вы хотите специальную страницу, ориентированную на Android, сделайте это. – bobince