Je reçois une première réponse réussie du serveur avec le bon code de statut et le résultat de données de json. Puis il y a 4 demandes successives sont déclenchées et elles gèlent toutes une mauvaise réponse (code d'état 400) avec un message Mauvaise demande. Ce comportement étrange se produit lorsque j'appuie sur une mise à jour, en essayant d'obtenir une liste de données du serveur. Voici mon code: La demande:Série étrange de réponses du serveur après avoir obtenu une première réponse réussie
public static void loadMyOrders(Context context, final OrdersCallBack listener) {
KService kTestService = ApiUtils.getOrdersApiService(context);
// TODO to be changed to getMyOrders <Done>
KService.getAllTheOrders().enqueue(new Callback<List<OrderServer>>() {
@Override
public void onResponse(Call<List<OrderServer>> call,
Response<List<OrderServer>> response) {
if (response.code() == 400) {
try {
Log.d("Error code 400",response.errorBody().string());
} catch (IOException e) {
e.printStackTrace();
Log.d("IO exception"," " + e.getMessage());
}
}
if (response.isSuccessful()) {
Log.d("listenerServerManager", response.code() + " ");
Log.d("slist0::" , " "+ response.body().toString());
List<OrderServer> ordersList = response.body();
for (OrderServer orderFromServer : ordersList) {
orderFromServer.compoundPrimaryKey();
}
Log.d("slist1::" , " "+ ordersList.toString());
listener.onSuccesful(ordersList);
} else {
Log.d("listenerServerManager", response.code() + " ");
listener.onError(response.code() + " ");
}
}
@Override
public void onFailure(Call<List<OrderServer>> call, Throwable t) {
Log.d("listenerServerManager", t.getMessage()+ " ");
listener.onError(t.getMessage() + " ");
}
});
}
client rénovation:
public static Retrofit getClient(String baseUrl, Context context) {
sharedpreferences = context.getSharedPreferences(GlobalsManager.USERPREFERENCES, context.MODE_PRIVATE);
final String token = sharedpreferences.getString(GlobalsManager.TOKENKEY, " ");
Gson gson = new GsonBuilder().setExclusionStrategies(new ExclusionStrategy() {
@Override public boolean shouldSkipField(FieldAttributes f) {
return f.getDeclaringClass().equals(RealmObject.class);
}
@Override public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
}).create();
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
if (httpClient == null) {
httpClient = new OkHttpClient.Builder().addNetworkInterceptor(new StethoInterceptor());
}
httpClient.addInterceptor(new Interceptor() {
@Override public okhttp3.Response intercept(Chain chain) throws IOException {
Request request = chain.request()
.newBuilder()
.addHeader("Authorization", "Bearer " + token)
.addHeader("Cache-Control", "no-cache")
.addHeader("Content-Type", "application/json")
.build();
return chain.proceed(request);
}
});
httpClient.addInterceptor(loggingInterceptor);
//httpClient.retryOnConnectionFailure(true);
return new Retrofit.Builder().baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create(gson))
.client(httpClient.build())
.build();
}
C'est la sortie: la première réponse est réussie alors j'obtenir les 4 succesvies réponses avec 400 comme réponse de code.
09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: <-- 200 OK http://api.serverapitest.kproj.net/api/TransportOrders/all (533ms)
09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Server: nginx/1.10.3 (Ubuntu)
09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Date: Fri, 08 Sep 2017 15:39:39 GMT
09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Content-Type: application/json; charset=Windows-1252
09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Content-Length: 32443
09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Connection: keep-alive
09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Cache-Control: no-cache
09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Pragma: no-cache
09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Expires: -1
09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: X-AspNet-Version: 4.0.30319
09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: X-Powered-By: ASP.NET
09-08 16:39:38.341 11246-13196/com.kProject.app6 D/OkHttp: [{THE GOOD LIST : THE EXPETED *******DATA *****************]}
09-08 16:39:38.351 11246-13196/com.kProject.app6 D/OkHttp: <-- END HTTP (32443-byte body)
<<<<<<After the refresh layout is pressed>>>>>>
09-08 16:40:45.151 11246-11246/com.kProject.app6 D/token-retrofitclient: FKJHGFHFGDKJHFDGFEZUOFbNR2Rt-AJu6mT_1Ci7QQAWYGiKH84M6lyAS*****DnpWWFdbo4nOGWfxTKVbA-RO2TzZjbZ5Sqn7_Da-UBm8mcc9x1JKQ6q8KWshd6
09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: --> GET http://api.serverapitest.kproj.net/api/TransportOrders/all http/1.1
09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: Authorization: Bearer Liv27WIlooXjkjdQ7bNR2Rt-AJu6mT_1Ci7QQAWYGiKH84M6lyASB0RXMiq2WRAB8zx85N7IFSu1CyphJcXGMjArS876Tj_EjYoDkec4Uu6UubiOKid2wG6ta80t0y6ejlp0FECHmqm6llav7uj_W-Au11JLXCmlICOMXT8j8dzCnVBJtr7Uc5oUA6bLMAONOqyU_nKEwz2ZUtRAIIiImY_qzNvc49NSqm7RTqSvBzJha8ElIz515PRWhFfbOaGx-U7jn1-JE7vTSJXfPGCOCGU53ecvO13AFlX2ckG3bUDMUzkqcn534PprTYMgYggGGQf48qdu1SJMgkuyoHJ_81YfDmG8Kr_smrhc7tyoR3wdUQCX_zsVBMJ-zlAPDkNfk15DG4c0qWzmuW9pZZMR5AaAveKU6KUCyUrikFlDGGvwsMLL9P9iYRlZqHFw_3lDu7DnpWWFdbo4nOGWfxTKVbA-RO2TzZjbZ5Sqn7_Da-UBm8mcc9x1JKQ6q8KWshd6
09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: Cache-Control: no-cache
09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: --> END GET
09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: --> GET http://api.serverapitest.kproj.net/api/TransportOrders/all http/1.1
09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: Authorization: Bearer Liv27WIlooXjkjdQ7bNR2Rt-AJu6mT_1Ci7QQAWYGiKH84M6lyASB0RXMiq2WRAB8zx85N7IFSu1CyphJcXGMjArS876Tj_EjYoDkec4Uu6UubiOKid2wG6ta80t0y6ejlp0FECHmqm6llav7uj_W-Au11JLXCmlICOMXT8j8dzCnVBJtr7Uc5oUA6bLMAONOqyU_nKEwz2ZUtRAIIiImY_qzNvc49NSqm7RTqSvBzJha8ElIz515PRWhFfbOaGx-U7jn1-JE7vTSJXfPGCOCGU53ecvO13AFlX2ckG3bUDMUzkqcn534PprTYMgYggGGQf48qdu1SJMgkuyoHJ_81YfDmG8Kr_smrhc7tyoR3wdUQCX_zsVBMJ-zlAPDkNfk15DG4c0qWzmuW9pZZMR5AaAveKU6KUCyUrikFlDGGvwsMLL9P9iYRlZqHFw_3lDu7DnpWWFdbo4nOGWfxTKVbA-RO2TzZjbZ5Sqn7_Da-UBm8mcc9x1JKQ6q8KWshd6
09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: Cache-Control: no-cache
09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: Authorization: Bearer Liv27WIlooXjkjdQ7bNR2Rt-AJu6mT_1Ci7QQAWYGiKH84M6lyASB0RXMiq2WRAB8zx85N7IFSu1CyphJcXGMjArS876Tj_EjYoDkec4Uu6UubiOKid2wG6ta80t0y6ejlp0FECHmqm6llav7uj_W-Au11JLXCmlICOMXT8j8dzCnVBJtr7Uc5oUA6bLMAONOqyU_nKEwz2ZUtRAIIiImY_qzNvc49NSqm7RTqSvBzJha8ElIz515PRWhFfbOaGx-U7jn1-JE7vTSJXfPGCOCGU53ecvO13AFlX2ckG3bUDMUzkqcn534PprTYMgYggGGQf48qdu1SJMgkuyoHJ_81YfDmG8Kr_smrhc7tyoR3wdUQCX_zsVBMJ-zlAPDkNfk15DG4c0qWzmuW9pZZMR5AaAveKU6KUCyUrikFlDGGvwsMLL9P9iYRlZqHFw_3lDu7DnpWWFdbo4nOGWfxTKVbA-RO2TzZjbZ5Sqn7_Da-UBm8mcc9x1JKQ6q8KWshd6
09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: Cache-Control: no-cache
09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: --> END GET
09-08 16:40:45.181 11246-11246/com.kProject.app6 D/ViewRootImpl: #1 mView = android.widget.LinearLayout{76d391e V.E...... ......I. 0,0-0,0}
09-08 16:40:45.201 11246-11373/com.kProject.app6 D/mali_winsys: new_window_surface returns 0x3000, [399x132]-format:1
09-08 16:40:45.261 11246-11373/com.kProject.app6
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <-- 400 Bad Request http://api.serverapitest.kproj.net/api/TransportOrders/all (222ms)
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Server: nginx/1.10.3 (Ubuntu)
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Date: Fri, 08 Sep 2017 15:40:46 GMT
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Content-Type: text/html
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Content-Length: 182
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Connection: close
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <html>
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <head><title>400 Bad Request</title></head>
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <body bgcolor="white">
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <center><h1>400 Bad Request</h1></center>
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <hr><center>nginx/1.10.3 (Ubuntu)</center>
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: </body>
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: </html>
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <-- END HTTP (182-byte body)
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <-- 400 Bad Request http://api.serverapitest.kproj.net/api/TransportOrders/all (224ms)
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Server: nginx/1.10.3 (Ubuntu)
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Date: Fri, 08 Sep 2017 15:40:46 GMT
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Content-Type: text/html
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Content-Length: 182
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Connection: close
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <html>
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <head><title>400 Bad Request</title></head>
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <body bgcolor="white">
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <center><h1>400 Bad Request</h1></center>
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <hr><center>nginx/1.10.3 (Ubuntu)</center>
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: </body>
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: </html>
09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <-- END HTTP (182-byte body)
09-08 16:40:45.401 11246-11246/com.kProject.app6 D/Error code 400: <html> <head><title>400 Bad Request</title></head> <body bgcolor="white"> <center><h1>400 Bad Request</h1></center> <hr><center>nginx/1.10.3 (Ubuntu)</center> </body> </html>
u besoin de voir pourquoi cette mauvaise demande arrive .. cela semble en ce qui concerne de quelque chose en arrière-plan à moins que votre données u faire la demande avec est pas bon .. –
S'il vous plaît offrir à votre demande réelle. –
Cela se produit rapidement, votre serveur exerce-t-il une limitation de débit? –