2015-01-09 136 views
1

我發送一些參數從javascript到jaxrs,但我在jaxrs得到的是null。HTTP帖子在jaxrs

這裏是我的代碼:

@POST 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
@Produces(MediaType.TEXT_PLAIN) 
public String sending(@QueryParam("var1") String var1, 
@QueryParam("var2") String var2) { 
System.out.println(var1+var2); 
return var1 + var2; 
} 

而且我的javascript:

xmlhttp.open("POST","link",true); 
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
xmlhttp.send("var1=stack&var2=flow"); 

回答

4

您應該使用@FormParam代替@QueryParam。不同之處在於查詢參數出現在實際的URL中,而表單參數在主體中。即

查詢參數

POST /rest/resource?var1=stack&var2=flow HTTP/1.1 

形式PARAMS

POST /rest/resource HTTP/1.1 
Content-Type: application/x-www-form-urlencoded 

var1=stack&var2=flow 

使用@QueryParam("var1")爲您提供了空,因爲與您的請求URL沒有查詢參數。

+0

非常感謝 –