2014-12-04 72 views
1

我正在嘗試做一個http文章。相同的代碼正在工作。但現在它不是我的servlet,而是給出了http響應代碼200.從瀏覽器中,相同的url正在訪問servlet。有什麼限制我的帖子嗎?請幫助我。對不起英語不好。HTTP POST不能從Java工作

int timeout=3000; 
String url="http://localhost:8020/WiCodeDynamic/WiCode?json="; 
String requestUrl="{\"vspCredentials\":{\"id\":\"TET\",\"password\":\"test\"}}"; 
URL x = new URL(url); 
HttpURLConnection connection =(HttpURLConnection)x.openConnection(); 

connection.setRequestMethod("POST"); 
//;charset=utf-8 
connection.setRequestProperty("Content-type","application/json"); 
connection.setDoOutput(true); 
connection.setConnectTimeout(timeout); 

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream())); 
bw.write(requestUrl); 
bw.flush(); 

int resp_code = connection.getResponseCode(); 
String resp_msg = connection.getResponseMessage(); 

System.out.println("resp_code="+resp_code); 
System.out.println("resp_msg="+resp_msg); 

BRS,

回答

1

只有一個小的失誤。將json=從您的URL末尾移至開始POST請求(requestUrl),您應該沒問題。

另外我建議你使用URLEncoder.encode來轉義正確傳輸的字符串。

+0

我已move.but現在我得到null檢索參數json在我的servlet。此前它是空的。還有其他更改嗎? – user2074800 2014-12-04 13:58:49

+0

你使用URLEncoder.encode嗎?如果你沒有,它會失敗。 – Nitram 2014-12-04 14:06:21

+0

是的,我用它.URLEncoder.encode(requestUrl,「UTF-8」); – user2074800 2014-12-04 14:57:51