jaxrs中的HTTP帖子

时间:2015-01-09 08:15:57

标签: javascript web-services jax-rs

我正在从javascript向jaxrs发送一些参数,但我得到的所有jax都是null。

这是我的代码:

@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");

1 个答案:

答案 0 :(得分:4)

您应该使用@FormParam代替@QueryParam。不同之处在于查询参数来自实际的URL,而表单参数位于正文中。即。

查询参数

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

Form Params

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

var1=stack&var2=flow

使用@QueryParam("var1")会显示空值,因为您的请求在网址中没有查询参数。