2017-05-04 15 views
1

私はPOSTMANでRESTサービスをテストしています。私はこのようなものを得なければなりません:Androidのボレー動作中のRest APIからJSONレスポンスを取得できません

{ 
    "msg": "the user was successfully created" 
    ... 
} 

しかし、私のアンドロイドアプリでは、デバッグでは応答を見つけることができません。私は何かを逃したのですか、何か間違っていますか?ありがとう!デバッグで

private void registerUser(final String firstName, final String lastName, 
          final String email, final String password) { 

    pDialog.setMessage("Registering ..."); 
    showDialog(); 

    try { 
     RequestQueue requestQueue = Volley.newRequestQueue(this); 
     JSONObject jsonBody = new JSONObject(); 
     jsonBody.put("first_name", firstName); 
     jsonBody.put("last_name", lastName); 
     jsonBody.put("email", email); 
     jsonBody.put("password", password); 

     final String requestBody = jsonBody.toString(); 

     StringRequest stringRequest = new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       Log.d(TAG, "Register Response: " + response); 
       hideDialog(); 
       ... 
      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       Log.e("VOLLEY", error.toString()); 
      } 
     }) { 
      @Override 
      public String getBodyContentType() { 
       return "application/json"; 
      } 

      @Override 
      public byte[] getBody() throws AuthFailureError { 
       try { 
        return requestBody == null ? null : requestBody.getBytes("utf-8"); 
       } catch (UnsupportedEncodingException uee) { 
        VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", requestBody, "utf-8"); 
        return null; 
       } 
      } 

      @Override 
      protected Response<String> parseNetworkResponse(NetworkResponse response) { 
       String responseString = ""; 
       if (response != null) { 
        responseString = String.valueOf(response.statusCode); 

       } 
       return Response.success(responseString, HttpHeaderParser.parseCacheHeaders(response)); 
      } 
     }; 

     requestQueue.add(stringRequest); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

、ブロック

@Override 
      protected Response<String> parseNetworkResponse(NetworkResponse response) { 
       String responseString = ""; 
       if (response != null) { 
        responseString = String.valueOf(response.statusCode); 

       } 
       return Response.success(responseString, HttpHeaderParser.parseCacheHeaders(response)); 
      } 

表示する。この:enter image description here

私はJSONレスポンスを持っていません。

答えて

1

あなたの側からjsonレスポンスを生成していないため、jsonデータが表示されません。 Postmanに表示される応答は、apiサービスからのものです。プログラムからの成功応答(ステータスコード201)があり、これがクライアントに返信する唯一のものです。

if (response != null) { 
       responseString = String.valueOf(response.statusCode); 

      } 

応答(parseNetworkResponseモジュール内)を操作し、クライアントに必要な関連情報を転送する必要があります。

+0

これを行う方法に関するリンクはありますか?応答変数に –

+0

があるのは、ステータスコードだけです。あなたは上のimgでそれを見ることができます。 –

+0

それは非常に簡単なはずです。 response.statusCodeの代わりに応答全体を変換する:responseString = String.valueOf(応答)のようなもの – Gi1ber7

関連する問題