我正在尝试使用Java程序加载网页的移动版本,以便轻松地从网页中提取少量信息。
在Firefox中,添加用户代理切换器插件后,我添加了一个新的用户代理,其值
"Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/110.07.127; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413"
此后,如果我尝试加载http://www.bbc.co.uk/,则该网页的移动版本已成功加载。
但是我试图通过设置
User-Agent
来使用apache httpclient库对Java程序执行相同的操作,如下所示:HttpClient httpclient = new DefaultHttpClient();
HttpProtocolParams.setUserAgent(httpclient.getParams(),
"Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/110.07.127; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413");
但是我没有获得相同链接的移动版本。
我希望重定向将在此处自动进行,并且随着用户代理的修改,我将获得该页面的移动版本。
您能帮我解决这个问题吗?
最佳答案
HttpClient不支持JavaScript redirection。
请注意,HttpClient不是浏览器。重要的是,它缺少UI,缓存,HTML渲染器和JavaScript引擎。要了解有关HttpClient范围的更多信息,请参阅HttpClient入门
也许您可以尝试这些问题中提出的解决方案
httpclient + javascript
Apache HttpClient 4 And JavaScript
JavaScript Context in HttpClient
关于java - 从Java程序模拟移动Web浏览器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9977935/