Android上的Jsoup userAgent - 这是什么意思?

时间:2016-04-26 11:21:04

标签: android jsoup user-agent mozilla eofexception

我在Android中使用HTML进行了一些Jsoup解析,我遇到了一些奇怪的东西(对我而言)。有些网站使用简单的Jsoup.connect(String).get()方法正常工作。

但在其他一些网站中我总是获得EOFException。所以我搜索并处理userAgent属性,当我使用Jsoup.connect(String).userAgent("Mozilla").get()时,它工作得很好。

那么“mozilla”究竟是什么意思?我的应用只适用于安装了Mozilla的设备?

1 个答案:

答案 0 :(得分:3)

每当您的网络浏览器打开网页时,它都会发送该网页的“请求”。该请求的一部分包括一系列“标题”。假设您使用Firefox打开谷歌,那么这样的东西将被发送到谷歌

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

.... 作为回报的HTML响应针对桌面/爬虫或通常针对您正在使用的浏览器(用户代理)进行了优化。有时它与html响应完全不同,html响应例如发送回移动代理(Android)。移动版可能没有与Jsoup选择器匹配的任何内容。因此,使用userAgent(“Mozilla”)。get()您告诉您希望获得与使用桌面浏览器打开google.com时看到的应用程序相同的响应。