最近在開發(fā)一個接口的過程中需要接收HTTP的POST請求里面正文的內(nèi)容,里面的數(shù)據(jù)是XML格式的字符串,同時在接收處理完成業(yè)務(wù)后需要向?qū)Ψ桨l(fā)送HTTP的POST請求,使用到了 HttpURLConnection類,來發(fā)送出一個POST請求,同時將我處理的結(jié)果寫入正文當(dāng)中,原先自己測試的時候也一直沒有成功發(fā)送出數(shù)據(jù),我自己使用了
HttpServletRequest中g(shù)etInputStream方法來接收數(shù)據(jù),沒有收到任何數(shù)據(jù)。
后來發(fā)現(xiàn)只要在使用HttpURLConnection的時候
int code = httpURLConnection.getResponseCode();
把這個方法加入,就可以正確發(fā)送數(shù)據(jù),否則好像發(fā)送不出的
另外注意要設(shè)置它的一些屬性
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"); 這個屬性一點要設(shè)置,否則接收不到數(shù)據(jù)
在接收的時候也發(fā)現(xiàn)個奇怪的問題,接收不到任何的數(shù)據(jù),后來發(fā)現(xiàn)我在
getInputStream方法前面使用了 getParameter方法,導(dǎo)致了getInputStream方法取不到任何數(shù)據(jù),只要
把他們換下位置就可以了