2017-09-07 2 views
0

Im essayant de récupérer les données de mon serveur avec Android 8 (26 Oreo) et je reçois l'erreur suivante:Rénovation + OkHttp - ProtocolException

java.net.ProtocolException: unexpected end of stream 

Im en utilisant Retrofit 2.3.0, 3.9.0 OkHttp. La chose étrange est que cette erreur se produit uniquement sur API 26 Oreo et pas sur les API précédentes, je reçois cette erreur au hasard, parfois oui, parfois non. L'erreur est courte en raison des capacités de débogage RxJava.

EDIT: J'ai changé RxJava avec un simple appel "demande", c'est la pleine erreur:

java.net.ProtocolException: unexpected end of stream 
at okhttp3.internal.http1.Http1Codec$FixedLengthSource.read(Http1Codec.java:398) 
at okio.RealBufferedSource.readAll(RealBufferedSource.java:163) 
at retrofit2.Utils.buffer(Utils.java:304) 
at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:204) 
at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:112) 
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:153) 
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 
at java.lang.Thread.run(Thread.java:764) 

L'appel que je fais est assez standard:

TestInterface api = retrofit.create(TestInterface.class); 
      Call<List<Post>> call = api.getFeed(0, 0, "9"); 
      call.enqueue(new Callback<List<Post>>() { 
       @Override 
       public void onResponse(Call<List<Post>> call, Response<List<Post>> response) { 
        Log.i(TAG, "[app] onResponse"); 
       } 

       @Override 
       public void onFailure(Call<List<Post>> call, Throwable t) { 
        Log.i(TAG, "[app] onFailure: ", t); 
       } 
      }); 

Ce sont ma réponse en-têtes, j'ai vérifié la longueur du contenu et il correspond à ma réponse:

Allow →GET, HEAD, OPTIONS 
Connection →close 
Content-Language →en 
Content-Length →3277 
Content-Type →application/json 
Date →Sat, 09 Sep 2017 14:58:38 GMT 
Server →gunicorn/19.7.0 
Vary →Accept, Accept-Language, Cookie 
X-Frame-Options →SAMEORIGIN 

Répondre

-1

Ceci est un problème avec 2.3 .0

restaurez la version 2.1.0 compilation 'com.squareup.retrofit2: convertisseur gson: 2.1.0'

+0

Merci va essayer! – box

+0

Ne fonctionne pas .... – box