Znalazłem problem. Mam serwer, który używa nagłówka User Agent, aby zidentyfikować urządzenie, które się z nim łączy. Ale kiedy łączę się z serwerem za pomocą HttpURLConnection, nie otrzymuję nagłówka User Agent, ale po połączeniu się z przeglądarką wysyła on prawidłowego agenta użytkownika.HttpURLConnection w Androidzie nie wysyła prawidłowego nagłówka User-Agent
Do testowania używam serwera echo, który odpowiada z nagłówkami znalezionymi na żądanie.
Po połączeniu się z przeglądarką uzyskuję: np .: User-Agent: Mozilla/5.0 (Linux; U; Android 1.5; en-fr; HTC Hero Build/CUPCAKE) AppleWebKit/528.5 + (KHTML, podobnie jak Gecko) Wersja/3.1.2 Mobile Safari/525.20.1 Up.Link/6.3.1.20.06.3.1.20.0.
Ale kiedy ja łączyć z kodem URLConnection uzyskać:
User-Agent: niedostępny.
Czy ktoś wie, że dostaję różne zachowania? Jak mogę połączyć się w taki sam sposób, jak przeglądarka?
EDIT:
co naprawdę potrzebne jest nie tylko nagłówek User-Agent, ja też potrzebuję jakieś specjalne nagłówki (x-up-subno faktycznie). Ten nagłówek jest dodawany przez APN operatora, ale z jakiegoś powodu, gdy łączę się przez kod, nagłówki nie są dodawane do żądania.
Od przeglądarce: browser http://bannergame.googlecode.com/files/device_browser.png
Od kodu: code http://bannergame.googlecode.com/files/device_code.png
Dzięki
Myślę, że większość bibliotek połączeń HTTP nie wysyła samych użytkowników, ale dostarczają sposobów dodawania nagłówków do żądania, aby można było dodać własne znaczące. –
To naprawdę nie jest dobry pomysł, aby wąchać User-Agent, istnieje wiele problemów, z którymi zmierzysz się z nieznanymi i kłamliwymi agentami, blokowanie oprogramowania , proxy i pamięci podręczne. Jeśli znajdziesz inny sposób sygnalizowania, że chcesz mieć specjalną stronę z systemem Android, zrób to. – bobince