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が正しいことも確かです。
任意の変数で使用する前に、 'final Profile profile = response.body();'を抜かなければなりません。 –
レスポンスは既に 'プロファイル'に変換されています。pojo – king
追加の変換は必要ありません。プロファイルプロファイル= response.body();プロフィールを取得する。 – king