1
我爲我的網絡爬蟲使用Apache HttpClient 4.0。我發現奇怪的行爲是:我試圖通過HTTP GET方法獲取頁面並獲得有關404 HTTP錯誤的響應。但是,如果我嘗試使用瀏覽器獲取該頁面,則會成功完成。Apache HttpClient 4.0。奇怪的行爲
詳細說明:1。 我上傳多形式的服務器是這樣的:
HttpPost httpPost = new HttpPost("http://[host here]/in.php");
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
entity.addPart("method", new StringBody("post"));
entity.addPart("key", new StringBody("223fwe0923fjf23"));
FileBody fileBody = new FileBody(new File("photo.jpg"), "image/jpeg");
entity.addPart("file", fileBody);
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
HttpEntity result = response.getEntity();
String responseString = "";
if (result != null) {
InputStream inputStream = result.getContent();
byte[] buffer = new byte[1024];
while(inputStream.read(buffer) > 0)
responseString += new String(buffer);
result.consumeContent();
}
Uppload succefully結束。
我收到從Web服務器的一些結果:
HttpGet httpGet = new HttpGet("http://[host here]/res.php?key="+myKey+"&action=get&id="+id); HttpResponse response = httpClient.execute(httpGet); HttpEntity entity = response.getEntity();
我得到ClientProtocolException而執行方法運行。我正在用log4j調試這種情況。服務器回答「404未找到」。但我的瀏覽器加載我的網頁沒有問題。
任何人都可以幫助我嗎?
謝謝。
您是否檢查過您的瀏覽器是否正在返回緩存頁面? – toolkit 2009-11-04 19:27:58
log4j告訴這個: DEBUG [org.apache.http.wire] >>「GET /res.php?key=sadf3f3f34f4f43f4f&action=get&id=89122037[0x0][0x0][0x0][0x0] .....如果是這樣,我該如何消除它? – 2009-11-04 19:28:11
你是否嘗試從HTTP 1.1切換到1.0或其他方式?我想我隱約記得httpclient有一些問題與一些服務器(如何通信),導致服務器返回404. – 2009-11-04 19:41:13