1
我正在GAE上开发休息Web服务。我正在使用Jersey框架来实现这些服务。这是一个POST服务,我必须传递参数。我试图用2种标注的,但我不能得到的参数:REST Web服务中的POST HTTP请求的进程参数(JERSEY)
@Context
@POST
@Path("add")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Notification addUser(@Context UriInfo uriInfo){
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nickname = queryParams.getFirst("nickname");
String name = queryParams.getFirst("name");
String surname = queryParams.getFirst("surname");
String telephone = queryParams.getFirst("telephone");
String email = queryParams.getFirst("email");
User =createUser(nickname, name, surname, telephone, email);
.......
}
@QueryParam
@POST
@Path("add")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Notification addUser(@QueryParam("nickname") String nickname, @QueryParam("name") String name, @QueryParam("surname") String surname, @QueryParam("telephone") String telephone, @QueryParam("email") String email) {
User =createUser(nickname, name, surname, telephone, email);
......
}
但在这两种情况下,我不能让所有的参数他们是空值。
这是我的http请求的例子:
Request URL: http://windyser.appspot.com/rest/users/add
Request Method: POST
Params: {"nickname":"prova","name":"danilo","surname":"delizia","email":"[email protected]","telephone":"123"}
Sent Headers
Accept: */*
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Language: en
任何人都知道,如果我失去了一些东西?
在此先感谢您的帮助
达尼洛
嗨Surlac,我试着用@Consumes(“text/plain”)和@Consumes(“application/x-www-form-urlencoded”)注释说,但它仍然不起作用。在第一种情况下,我从GAE获得“不支持的媒体类型”。第二种情况我得到空参数。任何线索我怎么能做到这一点? – ddelizia
尝试在POST方法签名中使用@FormParam,正如我在答案中所述。 – surlac
此解决方案的工作表示感谢!!达尼洛 – ddelizia