2012-10-18 161 views
0

我試圖向網站發送獲取請求,但始終返回錯誤400錯誤請求。我想知道如果我的請求是錯誤的或不。這裏是;獲取網站請求返回錯誤

socketOut.println("GET " + req.url + " HTTP/1.1\r\n"); 
socketOut.flush(); 

我可以通過使用URLConnection,但作爲我使用套接字的第二種方法。所以我發送這個請求並讀取字節。我檢查了它從網站返回給我的內容,當然它返回錯誤的請求錯誤頁面。任何建議?通過req.url的方法返回一個網址不是像/asd.html但這www.stackoverflow.com/asd.html

回答

1

println可以使用\n作爲新的生產線,而不是\r\n這可能是必需的。直接嘗試使用\r\n

HTTP 1.1要求Host標頭。嘗試:

socketOut.print("GET " + req.url + " HTTP/1.0\r\n\r\n"); 

或:

socketOut.print("GET " + req.url + " HTTP/1.1\r\n"); 
socketOut.print("Host: " + req.host + "\r\n"); 
socketOut.print("\r\n"); 
+0

謝謝隊友的第一個工作 –