我正在嘗試以字節爲單位讀取網頁,但它始終在我的java控制檯(我在控制檯上顯示內容)上返回「錯誤的請求錯誤400」消息。我找不到來糾正可能的方式是因爲我讀的字節code.Here是我的代碼和結果:讀取網頁時出現錯誤的請求錯誤
Socket s = new Socket(InetAddress.getByName(req.hostname), 80);
PrintWriter socketOut = new PrintWriter(s.getOutputStream());
socketOut.print("GET "+ req.url + "\n\n");
socketOut.flush();
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
StringBuffer buffer = new StringBuffer();
int data = in.read();
while (data != -1) {
char theChar = (char) data;
buffer.append(theChar);
data = in.read();
}
in.close();
byte[] result = buffer.toString().getBytes();
out.write(result);
而結果包含HTML標記從壞請求消息開始,但我刪除它們,以便這裏是我的結果:
Thread with id 10 URL: http://www.facebook.com.tr/
Host: www.facebook.com.tr
HTTP/1.1 400 Bad Request
Content-Type: text/html
Date: Wed, 17 Oct 2012 10:18:06 GMT
Connection: close
Content-Length: 134
400 Bad Request
Method Not Implemented
Invalid method in request
所以問題不在於閱讀嗎? –
Web地址不僅僅是一個文本文件,您正試圖與Web服務器通信,並需要執行某些握手才能獲取所需的信息。我會用一些應該做你想做的代碼更新我的答案。 – codeghost