throws java.net.ProtocolException: неожиданный конец потока - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь получить данные с моего сервера с Android 8 (26 Oreo), и я получаю следующую ошибку:

java.net.ProtocolException: unexpected end of stream
    at 
okhttp3.internal.http1.Http1Codec$FixedLengthSource.read(Http1Codec.java:398)
    at okio.RealBufferedSource.read(RealBufferedSource.java:46)
    at okio.ForwardingSource.read(ForwardingSource.java:35)
    at 
retrofit2.OkHttpCall$ExceptionCatchingRequestBody$1.read(OkHttpCall.java:291)
    at okio.RealBufferedSource$1.read(RealBufferedSource.java:430)
    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:287)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:350)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:179)
    at java.io.InputStreamReader.read(InputStreamReader.java:184)
    at okhttp3.ResponseBody$BomAwareReader.read(ResponseBody.java:252)
    at com.google.gson.stream.JsonReader.fillBuffer(JsonReader.java:1287)
    at 
  com.google.gson.stream.JsonReader.nextNonWhitespace(JsonReader.java:1325)
    at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:482)
    at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:414)
    at 
  com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read
 (Reflecti veTypeAdapterFactory.java:214)
     at 
 retrofit2.converter.gson.GsonResponseBodyConverter.convert
  (GsonResponseBodyConve rter.java:37)
    at 
 retrofit2.converter.gson.GsonResponseBodyConverter.convert
(GsonResponseBodyConve rter.java:25)
    at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:119)
    at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:218)
    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:1133)
    at 
  java.util.concurrent.ThreadPoolExecutor$Worker.run
   (ThreadPoolExecutor.java:607)
    at java.lang.Thread.run(Thread.java:761)

Я использую Retrofit 2.3.0 и OkHttp 3.9.0. Странно то, что эта ошибка возникает только в API 26 Oreo, а не в каких-либо предыдущих API, я получаю эту ошибку случайно, иногда да, иногда нет.

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Попробуйте это @Header("Connection","close") на вашем модернизированном вызове. Это решило проблему для меня.

0 голосов
/ 29 июня 2018

Вы можете проверить предоставленные решения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...