2016-04-26 4 views
0

Je fais quelques HTML analyse en utilisant Jsoup dans Android et j'ai rencontré des trucs bizarres (pour moi). Certains sites fonctionnent correctement avec la méthode Jsoup.connect(String).get().Jsoup userAgent sur Android - Qu'est-ce que cela signifie?

Mais dans certains autres sites, je TOUJOURS obtenir un EOFException. Donc, je recherche et abordé la propriété userAgent, et quand j'utilise Jsoup.connect(String).userAgent("Mozilla").get() cela fonctionne très bien.

Maintenant, que signifie exactement "mozilla"? Que mon application ne peut fonctionner qu'avec les appareils Mozilla installés?

+0

Un peu de googling ne fait pas de mal https://en.wikipedia.org/wiki/User_agent. Chaque site doit décider comment il gère l'en-tête 'user-agent'. Il peut rejeter la requête si 'user-agent' est vide ou * inconnu * ou a un mauvais format ou ... peu importe. Il peut aussi simplement l'ignorer. – nyname00

Répondre

2

Chaque fois que votre navigateur Web ouvre une page Web, il envoie une "demande" pour cette page. Une partie de cette demande comprend une série de "en-têtes". Supposons que vous utilisez Firefox pour ouvrir Google alors quelque chose comme ceci sera envoyé à Google

Host www.google.com 
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language de,en-US;q=0.7,en;q=0.3 
Accept-Encoding gzip, deflate 

.... réponses HTML en retour est optimisé pour les ordinateurs de bureau/robots d'exploration ou en général pour le navigateur (User-Agent) vous utilisez. Parfois, il est totalement différent de la réponse html qui est renvoyée par exemple aux agents mobiles (Android). La version mobile peut ne pas avoir quelque chose qui correspond à vos sélecteurs Jsoup. Donc, avec userAgent ("Mozilla"). Get() vous dites que vous souhaitez obtenir la même réponse pour votre application que vous voyez lorsque vous ouvrez google.com avec un navigateur de bureau.

+0

Ahh je l'ai maintenant. Cela n'a donc rien à voir avec une application 'Mozilla' installée. Bien. Je vous remercie. – God