我目前正試圖讓HttpComponents發送HttpRequests並檢索響應。 在大多數網址上,這個工作沒有問題,但是當我嘗試獲取phpBB論壇的URL即http://www.forum.animenokami.com時,客戶端需要更多時間,而且responseEntity包含不止一次的段落導致一個錯誤的html文件。Java:HttpComponents獲取垃圾迴應輸入來自特定URL的流
例如,meta標籤包含六次。由於許多其他URL工作,我無法弄清楚我做錯了什麼。 頁面在已知的瀏覽器中正常工作,所以它不是一個問題。
這是我用來發送和接收的代碼。
URI uri1 = new URI("http://www.forum.animenokami.com");
HttpGet get = new HttpGet(uri1);
get.setHeader(new BasicHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:6.0) Gecko/20100101 Firefox/6.0"));
HttpClient httpClient = new DefaultHttpClient();
HttpResponse response = httpClient.execute(get);
HttpEntity ent = response.getEntity();
InputStream is = ent.getContent();
BufferedInputStream bis = new BufferedInputStream(is);
byte[] tmp = new byte[2048];
int l;
String ret = "";
while ((l = bis.read(tmp)) != -1){
ret += new String(tmp);
}
我希望你能幫助我。 如果您需要了解更多信息,我會盡力盡快提供。
很好,謝謝。它工作正常,但我不明白的是爲什麼我只在這個URL上多次看到相同的文本。我沒有其他URL的這個問題。每次轉換整個緩衝區應該只是最後一個字節的問題,因爲剩餘的字節數少於2048個字節,對嗎? Buffer中的內容也將在每次迭代中被替換,因此不應導致輸出重複。 – TroubledMan