2016-04-26 17 views
0

私はJsoupをAndroidで使用している程度のフレーズをHTML行っています。私には奇妙なものがありました。一部のサイトは、単純なJsoup.connect(String).get()メソッドを使用して正常に動作します。AndroidでJsoup userAgent - それはどういう意味ですか?

しかし、いくつかの他のサイトでは、いつもEOFExceptionです。だから私は検索し、userAgentプロパティに取り組んだと私はJsoup.connect(String).userAgent("Mozilla").get()を使用してうまく動作します。

"mozilla"とはどういう意味ですか?私のアプリはMozillaがインストールされているデバイスでのみ動作しますか?

+0

グーグルが少しでもhttps://en.wikipedia.org/wiki/User_agentに害を及ぼすことはありません。各サイトは、 'user-agent'ヘッダをどのように扱うかを決める必要があります。 'user-agent'が空であるか* unknown *であるか、または間違ったフォーマットを持っている場合や、それが何であれ、要求を拒否することができます。それは単にそれを無視することもできます。 – nyname00

答えて

2

ウェブブラウザがウェブページを開くたびに、そのページの「リクエスト」が送信されます。その要求の一部には一連の「ヘッダー」が含まれています。あなたはこのような何かが

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 

をGoogleに送信されます....リターンで HTML応答は、ブラウザ(ユーザエージェント)のためのデスクトップ/クローラまたは一般に用に最適化され、その後グーグルを開くには、Firefoxを使用していると仮定あなたは使用しています。場合によっては、モバイルエージェント(Android)に返送されるhtml応答とはまったく異なる場合もあります。モバイル版には、Jsoupセレクタに一致するものはありません。したがって、userAgent( "Mozilla")。get()を使用すると、デスクトップブラウザでgoogle.comを開いたときに表示されるアプリケーションに対して同じレスポンスを取得することを伝えます。

+0

ああ、私は今それを得る。つまり、インストールされている「Mozilla」アプリとは何の関係もありません。良い。ありがとうございました。 – God

関連する問題