2016-04-03 15 views
0

私のアンドロイドアプリケーションからバックエンドにパラメータを送信しています。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ではありません
+0

Javaクライアントで「LoginResponse」をチェックしましたか? [投稿者](https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=ja)を使用して、投稿タイプで同じURLにパラメータを渡してください。 私はバックエンドで何も返さないと思います – Kathi

+0

私はx-www-form-urlencodedとして本文データを送信するとデータを返しています。理由は分かりません。私はそれが無関係だったので、質問にそれを含めませんでした。とにかくそれを編集しました。問題は、バックエンドメソッド@Kathiでnullパラメータを取得していることです。 – Dinuka

答えて

0

私たちは、私はあなたを持って期待し、NameValuePair

を試してみてください
public void postData() { 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://www.yoursite.com/yourscript.php"); 

    try { 

     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("id", "123")); 
     nameValuePairs.add(new BasicNameValuePair("string", "Hey")); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     HttpResponse response = httpclient.execute(httppost); 

    } catch (ClientProtocolException e) { 
     // Catch Protocol Exception 
    } catch (IOException e) { 
     // Catch IOException 
    } 
} 
+0

ありがとうございました。 – Dinuka

0

同様の問題がある、私はFiddler 無料のHTTPインスペクタとデバッガは、あなたのアプリケーションがバックエンドサーバーとバックエンドの回答に送信されているHTTPリクエストを見ることができますを使用して示唆したいと思います。

運が良かった

関連する問題