2015-01-09 7 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-адрес, а параметры формы находятся в теле. т.е.

Запрос Params

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

большое спасибо –

Смежные вопросы