2017-06-29 8 views
0

私はこのAPIを使用してユーザーの情報を返しますが、返されたjsonファイルは空の本文を返します。 APIリクエスト:ユーザートークン、ユーザID APIの応答:プロファイルオブジェクトAndroid Retrofit - 空白のボディを返すAPI呼び出し

API:

https://aujhfd1x3c.execute-api.us-east-1.amazonaws.com/staging/users/{id} 

インターフェイスメソッド:

:私はAPIを呼んでいる方法

@GET("/staging/users/{id}") 
    Call<Profile> getUserInfo(@Header("Authorization") String token, @Path("id") String id); 

private void getUserInfo() 
    { 
     Log.d("Give me", "getUserInfo"); 
     Retrofit retrofit_getUserInfo = new Retrofit.Builder() 
       .baseUrl("https://aujhfd1x3c.execute-api.us-east-1.amazonaws.com/") 
       .addConverterFactory(GsonConverterFactory.create()) 
       .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) 
       .build(); 
     SoceroAPI api_getUserInfo = retrofit_getUserInfo.create(SoceroAPI.class); 

     api_getUserInfo.getUserInfo(baroServiceProvider.getAuthToken().getToken(), inAppDatabase_userInfo.getData("user_ID")) 
       .enqueue(new Callback<Profile>() 
       { 
        @Override 
        public void onResponse(Call<Profile> call, Response<Profile> response) 
        { 
         Log.d("Give user info json", new GsonBuilder().setPrettyPrinting().create().toJson(response)); 
         Log.d("Give me user info: ", "getUserInfo: onResponse: " + inAppDatabase_userInfo.getData("user_ID")); 
         Log.d("Give me first n now!!!", response.body().getFirstName()+""); 
        } 

        @Override 
        public void onFailure(Call<Profile> call, Throwable throwable) 
        { 
         throwable.printStackTrace(); 
        } 
       }); 
    } 

ログ:

"body":{ }, 
    "rawResponse":{ 
     "body":{ 
     "contentLength":640, 
     "contentType":{ 
      "mediaType":"application/json", 
      "subtype":"json", 
      "type":"application" 
     } 
     }, 
     "code":200, 
     "handshake":{ 
     "cipherSuite":{ 
      "javaName":"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" 
     },............................................ 

ご覧のとおり、本文は空白です"body":{ }。したがって、ユーザーのファーストネームを印刷しようとすると、nullという値が表示されます。 APIが郵便配達員で働いていて動作しているかどうかを確認しました。 トークンIDとユーザーIDが正しいことも確かです。

+1

任意の変数で使用する前に、 'final Profile profile = response.body();'を抜かなければなりません。 –

+1

レスポンスは既に 'プロファイル'に変換されています。pojo – king

+1

追加の変換は必要ありません。プロファイルプロファイル= response.body();プロフィールを取得する。 – king

答えて

0

残りのクライアントをテストして、apiが適切に応答していることを確認できますか?また、認証とユーザーIDが有効であることを確認してください。コードにエラーがないようです。APIエンドポイントが正常に動作していることを確認してください。

関連する問題