2012-04-02 53 views
2

我想使用一個Java程序加載一個移動版本的網頁,很容易從網頁中提取少量信息。從Java程序模擬移動Web瀏覽器

在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"); 

,但我沒有得到相同的鏈路的移動版本。

我希望重定向會在這裏自動發生,我將在用戶代理被修改時獲取頁面的移動版本。

你能幫我解決這個問題嗎?

+0

啓用HttpClient的建議解決方案日誌記錄(http://hc.apache.org/httpcomponents-client-ga/logging.html)和後r esults。 – fglez 2012-04-03 15:24:19

+0

現在我發現問題是與那些設置window.location的網站在響應中重定向網頁的問題..不知何故,即使設置重定向後,Apache httpclient-4.1.3不自動處理此參數HttpClientParams.setRedirecting (params,true); DefaultHttpClient httpclient = new DefaultHttpClient(params); – 2012-04-05 07:24:28

回答

0

你在HttpClient上設置關注重定向嗎?

+0

嗨,我已經設置參數'http.protocol.handle-redirects'爲'true',HttpClient 4.0中的HttpGet方法不支持setFollowRedirects。 – 2012-04-03 05:55:47