Fai*_*her 0 post android get retrofit retrofit2
我已经看到有关此问题的其他线程,但无法得到任何正确的答案。
@POST("task/GetAllTasks")
Call<MyTask> getMyTasks(@Header("Authorization") String token, @Query("EmployeeId") String emp);
Run Code Online (Sandbox Code Playgroud)
这就是我的调用方式,起初我认为这是由于GET请求数据限制,因为 GET 施加了数据限制,然后我将请求从 GET 更改为 POST 但问题仍然存在。
ApiUtils.getTaskService().getMyTasks(apiToken, employeeId).enqueue(new Callback<MyTask>() {
@Override
public void onResponse(Call<MyTask> call, Response<MyTask> response) {
// ... Successful code goes here
}
@Override
public void onFailure(Call<MyTask> call, Throwable t) {
//.. This block of code executing now :(
}
}
Run Code Online (Sandbox Code Playgroud)
总是onFailure被调用。我已经在 Postman 上测试了同样的请求,它正在返回数据。Content-Length 是content-length ?45720
它确实适用于少量数据,因为我已经在 Dev 数据库上对其进行了测试,该数据库具有较小的数据量,但在 Live 环境中它不断引起问题。
请提出一个解决方案,或者我应该为此离开 Retrofit 并转向原生 Android 库?
编辑:我们可以在改造中增加请求超时,如果是,那么如何?
尝试增加超时时间:
OkHttpClient client = new OkHttpClient().newBuilder()
.readTimeout(10, TimeUnit.SECONDS)
.connectTimeout(10, TimeUnit.SECONDS).build();
Run Code Online (Sandbox Code Playgroud)
并将其设置为您的改造:
new Retrofit.Builder().baseUrl("xxx").client(client).build().create(xxx.class);
| 归档时间: |
|
| 查看次数: |
2301 次 |
| 最近记录: |