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