2017-09-07 30 views
0

イムアンドロイド8(26オレオ)と私のサーバーからデータを取得しようとすると、私は次のエラーを取得:レトロフィット2.3.0を使用してレトロフィット+ OkHttp - ProtocolException使用

java.net.ProtocolException: unexpected end of stream 

イムを、OkHttp 3.9.0。奇妙なことに、このエラーはAPI 26 Oreoでのみ発生し、以前のAPIでは発生しないため、このエラーはランダムに、時にははい、時にはそうではありません。このエラーは、RxJavaのデバッグ機能のために短いです。

編集:私は、単純なコール「要求」、これは完全な誤りであるとRxJavaを変更:

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) 

私が作るの呼び出しはかなり標準です:

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); 
       } 
      }); 

これらは私の応答ですヘッダー、私はContent-Lengthをチェックして、それは私の応答と一致します:

答えて

-1

これは2.3の問題ですバージョン2.1.0 コンパイル ':コンバータ-gson:com.squareup.retrofit2 2.1.0' に0.0

ダウングレード

+0

おかげでそれをしようとします! – box

+0

動作していません.... – box

関連する問題