2014-05-22 26 views
9

I browser Android inviano Dalvik come agenti utente nelle intestazioni della richiesta.Browser che invia "Dalvik" come agente utente

Attualmente sto lavorando su un sito mobile con una semplice pagina di accesso che convalida nome utente e password, quindi autorizza il profilo degli utenti.

Ma quando ho controllato le intestazioni della richiesta ho visto qualcosa di insolito, c'erano due agenti utente dallo stesso dispositivo.

Questi i user-agent dallo stesso dispositivo:

"Mozilla/5.0 (Linux; Android 4.1.2; C5303 Build/12.0.A.1.257) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36" 

"Dalvik/1.6.0 (Linux; U; Android 4.2.2; C2004 Build/15.2.A.2.5)" 

Anche qualcosa di strano i cookie che sono stati siglati ci sia Reset o caduto.

Esiste un modo per eseguire il debug di questo ulteriore per ulteriori informazioni e ottenere una vista migliore su questo problema?

Questo problema non è presente nei vecchi telefoni Android o telefoni ios o windows.

** Problema notato nella fascia alta telefoni cellulari Android con KitKat/OS Jellybean

+0

Sembra che qualcosa stia estraendo le informazioni sulla versione di VM da 'System.getProperty()'. Non ho idea del motivo per cui lo invierà a un server web, o pretenderebbe di avere Android 4.2.2 se è in esecuzione KitKat. – fadden

+0

Sì è strano e non siamo ancora riusciti a trovare una soluzione a questo ???? –

+0

Ho notato anche uno strano comportamento quando abilito ** McAfee antivirus ** su di esso invia questo header ma quando lo disattivo, non è solo un'ipotesi ma non del tutto vero ... !!! @fadden –

risposta

7

Ho appena notato un modello simile di User-agent per back to back richieste. Nel mio caso, la prima richiesta (con l'agente utente di Mozilla) proveniva da una webview incorporata. L'URL richiesto è stato quello di scaricare un file PDF. Quello che ho trovato è che la webview di Android non può gestire il tipo di contenuto PDF, quindi avvia un visualizzatore di PDF attraverso un intento. Tuttavia, prima che questo visualizzatore venga avviato, Android effettua una seconda richiesta per lo stesso URL. Nella seconda richiesta viene presentato l'user agent Dalvik.

Le due richieste di estraneità sono state discusse in precedenza, vedere Is setDownloadListener onDownloadStart called after the webview already Gets the file? e WebView - can't download file without requesting it twice?.

Nella mia prima richiesta, dal WebView, vedo l'agente utente:

Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; Galaxy Nexus build/JDQ39) AppleWebKit /534.30 (KHTML, come Gecko) Version/4.0 mobile Safari/534,30

la seconda richiesta (che presumo sia dal sistema operativo Android, e non il WebView) mostra l'agente utente:

Dalvik/1.6.0 (Linux; U; Android 4.2.2; Galaxy Nexus Costruire/JDQ39)

2
  • Dalvik è la VM Android in cui vengono eseguiti singole applicazioni.
  • Quello che vedi è l'intestazione della richiesta da un browser in esecuzione su Android (che viene eseguito in Dalvik).
  • Quindi le due stringhe UA (User Agent), una per il browser, una per la VM in cui è in esecuzione.