我有这个API返回用户的信息,但返回的json文件返回一个空白的主体。 API请求:用户令牌,用户ID API响应:Profile对象
API:
https://aujhfd1x3c.execute-api.us-east-1.amazonaws.com/staging/users/{id}
界面方法:
@GET("/staging/users/{id}")
Call<Profile> getUserInfo(@Header("Authorization") String token, @Path("id") String id);
我如何调用API:
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是否正确。
答案 0 :(得分:0)
您是否可以通过其他客户端测试来确认api是否正确响应...还要确保授权和用户ID有效。代码似乎没有错误。确保API端点运行良好。