最近在開發一個接口的過程中需要接收HTTP的POST請求里面正文的內容,里面的數據是XML格式的字符串,同時在接收處理完成業務后需要向對方發送HTTP的POST請求,使用到了 HttpURLConnection類,來發送出一個POST請求,同時將我處理的結果寫入正文當中,原先自己測試的時候也一直沒有成功發送出數據,我自己使用了
HttpServletRequest中getInputStream方法來接收數據,沒有收到任何數據。
后來發現只要在使用HttpURLConnection的時候
int code = httpURLConnection.getResponseCode();
把這個方法加入,就可以正確發送數據,否則好像發送不出的
另外注意要設置它的一些屬性
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
httpURLConnection.setConnectTimeout(10000);
httpURLConnection.setRequestProperty("content-type", "text/html;charset=utf-8");
httpURLConnection.setRequestMethod("POST");
其中setRequestProperty("content-type", "text/html;charset=utf-8"); 這個屬性一點要設置,否則接收不到數據
在接收的時候也發現個奇怪的問題,接收不到任何的數據,后來發現我在
getInputStream方法前面使用了 getParameter方法,導致了getInputStream方法取不到任何數據,只要
把他們換下位置就可以了