Java 改造Android会错过服务器的一些响应(并非全部)
当我尝试在for循环中发送一些请求时,服务器的日志是正常的(所有请求都已接收,所有响应都已发送),但在androidstudio模拟器中,我只有一些响应,而不是所有响应。这是我的请求代码Java 改造Android会错过服务器的一些响应(并非全部),java,android,django,android-emulator,retrofit2,Java,Android,Django,Android Emulator,Retrofit2,当我尝试在for循环中发送一些请求时,服务器的日志是正常的(所有请求都已接收,所有响应都已发送),但在androidstudio模拟器中,我只有一些响应,而不是所有响应。这是我的请求代码 private void updateDatabase(JsonArray arrayJson) { final List<JsonObject> user_cars= new ArrayList<JsonObject>(); for(JsonElement a : a
private void updateDatabase(JsonArray arrayJson) {
final List<JsonObject> user_cars= new ArrayList<JsonObject>();
for(JsonElement a : arrayJson){
String carID = a.getAsString();
carID=carID.substring(0,carID.length()-1);
int index = carID.lastIndexOf('/');
Integer id =Integer.parseInt(carID.substring(index+1));
Log.e("Index",id.toString());
AdaClient client = ServiceGenerator.createService(AdaClient.class);
Call<JsonObject> call = client.retrieveCars(id);
call.enqueue(new Callback<JsonObject>() {
@Override
public void onResponse(Call<JsonObject> call, retrofit2.Response<JsonObject> response) {
Log.e("user_cars",response.body().toString());
user_cars.add(response.body());
}
@Override
public void onFailure(Call<JsonObject> call, Throwable t) {
}
});
}
这里是logcat
08-29 12:55:20.748 19654-19654/it.uniroma3.adateam.ada E/user_cars: {"id":1,"owner":"raul@raul.raul","car":"http://10.10.10.10:8080/cars/60546/","total_km":null,"tires_km":null,"oil_km":null,"breaks_km":null,"engine_km":null,"insurance_date":null,"vehicle_tax_date":null}
08-29 12:55:20.826 19654-19654/it.uniroma3.adateam.ada E/user_cars: {"id":3,"owner":"raul@raul.raul","car":"http://10.10.10.10:8080/cars/60550/","total_km":null,"tires_km":null,"oil_km":null,"breaks_km":null,"engine_km":null,"insurance_date":null,"vehicle_tax_date":null}
08-29 12:55:20.855 19654-19654/it.uniroma3.adateam.ada E/user_cars: {"id":4,"owner":"raul@raul.raul","car":"http://10.10.10.10:8080/cars/60551/","total_km":null,"tires_km":null,"oil_km":null,"breaks_km":null,"engine_km":null,"insurance_date":null,"vehicle_tax_date":null}
08-29 12:55:20.863 19654-19654/it.uniroma3.adateam.ada E/user_cars: {"id":2,"owner":"raul@raul.raul","car":"http://10.10.10.10:8080/cars/60548/","total_km":null,"tires_km":null,"oil_km":null,"breaks_km":null,"engine_km":null,"insurance_date":null,"vehicle_tax_date":null}
08-29 12:55:20.915 19654-19654/it.uniroma3.adateam.ada E/user_cars: {"id":8,"owner":"raul@raul.raul","car":"http://10.10.10.10:8080/cars/60550/","total_km":null,"tires_km":null,"oil_km":null,"breaks_km":null,"engine_km":null,"insurance_date":null,"vehicle_tax_date":null}
08-29 12:55:20.936 19654-19654/it.uniroma3.adateam.ada E/user_cars: {"id":9,"owner":"raul@raul.raul","car":"http://10.10.10.10:8080/cars/60547/","total_km":null,"tires_km":null,"oil_km":null,"breaks_km":null,"engine_km":null,"insurance_date":null,"vehicle_tax_date":null}
下面是我的服务器响应:
[29/Aug/2017 12:55:36] "GET /user-cars/1/ HTTP/1.1" 200
[29/Aug/2017 12:55:36] "GET /user-cars/3/ HTTP/1.1" 200
[29/Aug/2017 12:55:36] "GET /user-cars/4/ HTTP/1.1" 200
[29/Aug/2017 12:55:36] "GET /user-cars/5/ HTTP/1.1" 200
[29/Aug/2017 12:55:36] "GET /user-cars/2/ HTTP/1.1" 200
[29/Aug/2017 12:55:36] "GET /user-cars/8/ HTTP/1.1" 200
[29/Aug/2017 12:55:36] "GET /user-cars/9/ HTTP/1.1" 200
如您所见,logcat中的一些响应缺少id=5,但完全是随机的。为什么? 尝试将response.body().string存储在字符串变量中并使用该字符串变量。为什么onFailure中没有Log.d?你怎么知道没有收到id为5的呼叫?只需从服务器和logcat读取日志,因为你可以看到logcat错过了id为5的汽车。我刚刚注意到,自启动此日志后,我仍然有E/BatteryStats服务:调制解调器信息无效:ModemActivityInfo{mTimestamp=0 msleptimems=0 midleItems=0 mtxtimes[]=[0,0,0,0,0,0]mRxTimeMs=0 mEnergyUsed=0}你理解JJF的问题吗?如果您得到一个错误(尽管服务器指示200),您只是忽略它。您应该记录错误,即使本例中不是这样。请尝试将response.body().string存储在字符串变量中,并使用该字符串变量。为什么onFailure中没有log.d?你怎么知道没有收到id为5的呼叫?只需从服务器和logcat读取日志,因为你可以看到logcat错过了id为5的汽车。我刚刚注意到,自启动此日志后,我仍然有E/BatteryStats服务:调制解调器信息无效:ModemActivityInfo{mTimestamp=0 msleptimems=0 midleItems=0 mtxtimes[]=[0,0,0,0,0,0]mRxTimeMs=0 mEnergyUsed=0}你理解JJF的问题吗?如果您得到一个错误(尽管服务器指示200),您只是忽略它。您应该记录错误,即使在本例中不是这样。
[29/Aug/2017 12:55:36] "GET /user-cars/1/ HTTP/1.1" 200
[29/Aug/2017 12:55:36] "GET /user-cars/3/ HTTP/1.1" 200
[29/Aug/2017 12:55:36] "GET /user-cars/4/ HTTP/1.1" 200
[29/Aug/2017 12:55:36] "GET /user-cars/5/ HTTP/1.1" 200
[29/Aug/2017 12:55:36] "GET /user-cars/2/ HTTP/1.1" 200
[29/Aug/2017 12:55:36] "GET /user-cars/8/ HTTP/1.1" 200
[29/Aug/2017 12:55:36] "GET /user-cars/9/ HTTP/1.1" 200