私のアンドロイドアプリケーションからバックエンドにパラメータを送信しています。POSTメソッドでアンドロイドクライアントから送信されたパラメータを取得しようとしていますが、クライアントがヌルではないパラメータを送信します。Java REST API:POSTメソッドがNULLパラメータを取得する
JavaのPOSTメソッド:
@POST
@Produces({ "application/json" })
@Path("/login")
public LoginResponse Login(@FormParam("email") String email, @FormParam("password") String password) {
LoginResponse response = new LoginResponse();
if(email != null && password != null && email.length() != 0 && password.length() != 0){
//Detect if null or empty
//Code
}
return response;
}
のAndroidクライアント:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://MY_APP_NAME.appspot.com/user/login");
String json = "";
JSONObject jsonObject = new JSONObject();
try {
jsonObject.accumulate("email", "[email protected]");
jsonObject.accumulate("password", "123");
json = jsonObject.toString();
StringEntity se = new StringEntity(json);
httppost.setEntity(se);
httppost.setHeader("Content-Type", "application/json");
httppost.setHeader("ACCEPT", "application/json");
HttpResponse httpResponse = httpclient.execute(httppost);
}
catch(Exception ex) { }
私は方法とクライアントのコンテンツタイプが同様に同じであると考えています。 Java Backendメソッドからパラメータを受け取っていないのはなぜですか? CHECKED
:
- URLが正しいか、接続が
- を働いているアプリによって送信されたパラメータがnullではありません
Javaクライアントで「LoginResponse」をチェックしましたか? [投稿者](https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=ja)を使用して、投稿タイプで同じURLにパラメータを渡してください。 私はバックエンドで何も返さないと思います – Kathi
私はx-www-form-urlencodedとして本文データを送信するとデータを返しています。理由は分かりません。私はそれが無関係だったので、質問にそれを含めませんでした。とにかくそれを編集しました。問題は、バックエンドメソッド@Kathiでnullパラメータを取得していることです。 – Dinuka