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