GAEでの残りのWebサービスの開発中です。私はJerseyフレームワークを使ってサービスを実装しています。 POSTサービスで、パラメータも渡す必要があります。私は、アノテーションの2種類を使用しようとしましたが、私はパラメータを取得することはできません。REST Webサービス(JERSEY)でのPOST HTTPリクエストの処理パラメータ
@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);
......
}
@QueryParam
@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);
.......
}
@Contextしかし、両方のケースで、私はすべてのパラメータを取得することはできませんそれらの値はヌル値です。
これは私の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から「Unsupported Media Type」を取得します。そして、2番目のケースはnullパラメータを取得します。どのように私はそれを行うことができますか? – ddelizia
答えに記載されているように、POSTメソッドのシグネチャで@FormParamを使用してみてください。 – surlac
このソリューションは感謝しました!!ダニロ – ddelizia