1. 程式人生 > >HttpURLConnection.getInputStream()阻塞及405錯誤

HttpURLConnection.getInputStream()阻塞及405錯誤

後臺使用http請求獲取其他服務的資料,使用GET請求在url後面拼接引數傳送請求。在本地編寫對端的測試介面進行測試。每次程式碼走到HttpURLConnection物件的getInputStream()方法時都會阻塞,在測試介面內打的斷點也沒有走到,然後嘗試通過瀏覽器直接輸入url請求介面成功進入斷點。。。

後來反覆測試無意中將接收請求的介面內斷點都去掉,http請求竟然執行成功。。。有沒有大神解釋下原因,斷點還會影響到接受請求嗎。。

還遇到一個錯誤是我使用的是GET請求,一開始報了

java.io.IOException: Server returned HTTP response code: 405 for URL: http://127.0.0.1:8080/

錯誤,原因是將請求引數拼接串通過HttpURLConnection的getOutputStream()傳送了

outputStream = httpUrlConn.getOutputStream();
outputStream.write(attachments.getBytes(chartSet));
outputStream.flush();
outputStream.close();

這個方法只適合於POST請求傳送引數,GET請求還是通過在url後面拼接來發送。

專案框架使用的是SpringMVC,在接收請求的方法註解上使用如下配置:

//測試響應http請求
@RequestMapping(value="/dockKFOrderData",method=RequestMethod.GET)
public void dockKFOrderData(){}

因此限制了該介面只接受GET請求。如果設定HttpURLConnection的請求方法是POST,也會導致請求失敗。

httpUrlConn.setRequestMethod("POST");