2017-10-16 146 views
-3

我能够在Retrofit中使用日志拦截器来获取响应,但我的onResponse没有被调用。onResponse未被调用Retrofit

我使用的两个模型类如下所示,还有两个名为Result和JobTitle。

MainResponse.class

public class MainResponse { 

@SerializedName("status") 
@Expose 
private String status; 
@SerializedName("data") 
@Expose 
private Data data; 

public String getStatus() { 
    return status; 
} 

public void setStatus(String status) { 
    this.status = status; 
} 

public Data getData() { 
    return data; 
} 

public void setData(Data data) { 
    this.data = data; 
} 
} 

Data.class

public class Data { 

@SerializedName("messages") 
@Expose 
private List<Object> messages = null; 
@SerializedName("result") 
@Expose 
private Result result; 

public List<Object> getMessages() { 
    return messages; 
} 

public void setMessages(List<Object> messages) { 
    this.messages = messages; 
} 

public Result getResult() { 
    return result; 
} 

public void setResult(Result result) { 
    this.result = result; 
} 
} 

回调的代码如下所示:

Call<MainResponse> call = imsClient.fetchStatus(userCredentials); 
    call.enqueue(new Callback<MainResponse>() { 
     @Override 
     public void onResponse(Call<MainResponse> call, Response<MainResponse> response) { 
      Log.e("Ei", "In response"); 
      MainResponse mainResponse = response.body(); 
      Data data = mainResponse.getData(); 
      Result result = data.getResult(); 
      Toast.makeText(PrimaryLogin.this, "Welcome" + result.getFirstName() + result.getLastName(), Toast.LENGTH_SHORT).show(); 
     } 

     @Override 
     public void onFailure(Call<MainResponse> call, Throwable t) { 


     } 
    }); 

回调函数被调用失败,但没有如果执行成功的调用,会发生事情。我无法弄清楚,任何帮助将不胜感激。

日志:

{"status":"success","data":{"messages":[],"result":{"clinicCode":"Medics","firstName":"Charles","lastName":"Sanders","officeId":0,"id":7834,"startDate":1508142509926,"timeZoneId":0,"userDetailId":6,"userName":"charles","jobTitle":{"id":1,"text":"Doctor","count":1},"isSuperUser":false,"clientId":10,"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGluaWNDb2RlIjoiTWVkaWNzIiwiZW1haWwiOm51bGwsImVuZERhdGUiOm51bGwsImZpcnN0TmFtZSI6IkNoYXJsZXMiLCJsYXN0TmFtZSI6IlNhbmRlcnMiLCJvZmZpY2VJZCI6MCwiaWQiOjc4MzQsInNwZWNpYWx0eUlkIjpudWxsLCJzdGFydERhdGUiOjAsInRpbWVab25lSWQiOjAsInVzZXJEZXRhaWxJZCI6NiwidXNlck5hbWUiOiJjaGFybGVzIiwib2ZmaWNlIjpudWxsLCJzcGVjaWFsdHkiOm51bGwsInRpbWVab25lIjpudWxsLCJ1c2VyRGV0YWlsIjpudWxsLCJwYXJhbWV0ZXJzIjpudWxsLCJqb2JUaXRsZSI6bnVsbCwiaXNTdXBlclVzZXIiOmZhbHNlLCJjbGllbnRJZCI6MTAsImNvZGUiOm51bGwsInRva2VuIjpudWxsLCJlbXBsb3llZUlkIjoxNCwicHJvdmlkZXJJZCI6bnVsbCwiaXNBY3RpdmUiOmZhbHNlLCJpc0xvY2tlZCI6ZmFsc2UsImxhc3RQYXNzd29yZENoYW5nZWQiOjAsImxvY2tlZENvZGVJZCI6bnVsbCwibG9ja2VkRGF0ZVRpbWUiOm51bGwsInBhc3N3b3JkIjpudWxsLCJwYXRpZW50SWQiOm51bGwsInByZWZMYW5nSWQiOm51bGwsInNlc3Npb25JZCI6NzgzNCwiY3JlYXRlZEJ5IjpudWxsLCJlbXBsb3llZSI6bnVsbCwibGFzdE1vZGlmaWVkQnkiOm51bGwsImxvY2tlZENvZGUiOm51bGwsInBhdGllbnQiOm51bGwsInByZWZMYW5nIjpudWxsLCJhcHBsaWNhdGlvbk5hbWUiOm51bGwsIm1hY2hpbmVJZCI6bnVsbCwibGFuZ0lkIjpudWxsLCJjb3VudHJ5Q29kZSI6IlVTIn0.B-C9YWEHWQJue83TnGUa3dnmQYz0ngdNPUqH_6AG8tU","employeeId":14,"isActive":false,"isLocked":false,"lastPasswordChanged":0,"sessionId":0}}} 
+0

你确定这个回应有一个有效的HTTP状态吗?当你添加[日志拦截器](https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor)时会发生什么? – thepoosh

+0

我已经添加了日志 –

+0

可能是你解析错误,所以你可以写'onFailure'方法登录 –

回答

0

我得到了这个问题。在Result模型中,我将数据存储为Integer,并且响应时间很长,因此错误被调用。