2012-10-19 56 views
1

我想將客戶端的字符串傳輸到Web服務器。無法從httpRequest獲取參數

客戶端代碼:

String uriString = "http://128.128.4.120:8080/GCMService/GCMBroadcast"; 
URI uri = null; 
try { 
    uri = new URI(uriString); 
} catch (URISyntaxException e) { 
    e.printStackTrace(); 
} 
DefaultHttpClient httpClient = new DefaultHttpClient(); 
HttpPut httpPut = null; 
if(uri!=null) 
httpPut = new HttpPut(uri); 
HttpParams params = new BasicHttpParams(); 
params.setParameter("mymsg", "HELLO SERVER"); 
httpClient.setParams(params); 
HttpResponse resp = httpClient.execute(httpPut); 

服務器代碼:

@Override 
protected void doPut(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {  
    System.out.println(req.getParameter("mymsg")); 

} 

的服務器輸出「空」的控制檯,我希望應該是「Hello服務器」,每次的客戶端請求httpPut。這是如何造成的,我該如何解決這個問題。

回答

0
String uriString = "http://128.128.4.120:8080/GCMService/GCMBroadcast"; 
URIBuilder uriBuilder = new URIBuilder(uriString); 
uriBuilder.addParameter("mymsg", "HELLO SERVER"); 
DefaultHttpClient httpClient = new DefaultHttpClient(); 
HttpPut httpPut = new HttpPut(uriBuilder.build()); 
HttpResponse resp = httpClient.execute(httpPut); 
+0

感謝您的回覆。我還沒有測試你的代碼。我很好奇我的代碼中究竟發生了什麼錯誤。我想知道它,所以我可以更好地瞭解HTTPComponents。 – glenlivet1986

+0

來自HTTP組件javadoc:「HttpParams接口表示定義組件的運行時行爲的不可變值集合」。顯然,它們與您的服務器端組件在req.getParameter(...) –

+0

工作時收到的參數不同。乾杯! – glenlivet1986