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をチェックして、それは私の応答と一致します:
おかげでそれをしようとします! – box
動作していません.... – box