okhttpclient 报 java.io.IOException: unexpected end of stream

admin 2022-09-29 PM 1985℃ 48条

今天使用okhttpclient向设备上发信息,错误提示:

java.io.IOException: unexpected end of stream

原因是对方没有正确处理header中的Connection字段所致,经过whistle抓包后发现:Connection = keepalive,但对方没有处理这个值,默认是关闭链接,而客户端还是根据这个值去发起请求。

处理办法:使用Connection = close传输值。

private static class NetInterceptor implements Interceptor {

        @Override
        public Response intercept(Chain chain) throws IOException {
            Request request = chain.request().newBuilder().removeHeader("Connection").addHeader("Connection","close").build();
            return chain.proceed(request);
        }
    }

在初始化代码中加入:

mHttpClient = builder.connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS)
                    .addNetworkInterceptor(new NetInterceptor())

经过测试后发现,问题得到解决,不再出现:java.io.IOException: unexpected end of stream 的错误。

标签: okhttpclient

非特殊说明,本博所有文章均为博主原创。

评论啦~



已有 48 条评论


  1. 1
    1

    1

    回复 2023-05-19 20:42
    1. 1
      1

      1

      回复 2023-05-20 00:00
      1. 1
        1

        555

        回复 2023-05-22 10:21
      2. 1
        1

        1

        回复 2023-05-22 13:50
      3. 1
        1

        1

        回复 2023-05-22 13:50
      4. 1
        1

        1

        回复 2023-05-22 13:50
      5. 1
        1

        1

        回复 2023-05-22 13:50
      6. 1
        1

        1

        回复 2023-05-22 13:51
      7. 1
        1

        1

        回复 2023-05-22 13:51
      8. 1
        1

        1

        回复 2023-05-22 13:51
      9. 1
        1

        1

        回复 2023-05-22 13:51
      10. 1
        1

        1

        回复 2023-05-22 13:51
      11. 1
        1

        1

        回复 2023-05-22 13:51
      12. 1
        1

        1

        回复 2023-05-22 13:54
      13. 1
        1

        1

        回复 2023-05-22 13:54
      14. 1
        1

        1

        回复 2023-05-22 13:54
      15. 1
        1

        1

        回复 2023-05-22 13:54
      16. 1
        1

        1

        回复 2023-05-22 13:54
      17. 1
        1

        1

        回复 2023-05-22 13:54
    2. 1
      1

      1

      回复 2023-05-22 09:54
    3. 1
      1

      1

      回复 2023-05-22 13:47
    4. 1
      1

      1

      回复 2023-05-22 13:48
    5. 1
      1

      1

      回复 2023-05-22 13:48
    6. 1
      1

      1

      回复 2023-05-22 13:48
    7. 1
      1

      1

      回复 2023-05-22 13:49
    8. 1
      1

      1

      回复 2023-05-22 13:49
    9. 1
      1

      1

      回复 2023-05-22 13:49
    10. 1
      1

      1

      回复 2023-05-22 13:49
    11. 1
      1

      1

      回复 2023-05-22 13:49
    12. 1
      1

      1

      回复 2023-05-22 13:52
    13. 1
      1

      1

      回复 2023-05-22 13:52
    14. 1
      1

      1

      回复 2023-05-22 13:52
    15. 1
      1

      1

      回复 2023-05-22 13:53
    16. 1
      1

      1

      回复 2023-05-22 13:53
  2. 1
    1

    555

    回复 2023-05-19 22:03
    1. 1
      1

      1

      回复 2023-05-20 00:03
    2. 1
      1

      555

      回复 2023-05-20 00:44
  3. 1
    1

    1

    回复 2023-05-19 23:18
    1. 1
      1

      1

      回复 2023-05-20 00:17
  4. 1
    1

    1

    回复 2023-05-19 23:18
  5. 1
    1

    1

    回复 2023-05-19 23:18
  6. 1
    1

    1

    回复 2023-05-22 09:42
  7. 1
    1

    555

    回复 2023-05-22 10:11
    1. 1
      1

      555

      回复 2023-05-22 14:40
  8. 1
    1

    1

    回复 2023-05-22 12:46
  9. 1
    1

    1

    回复 2023-05-22 12:46
  10. 1
    1

    1

    回复 2023-05-22 12:46
  11. 1
    1

    555

    回复 2023-05-22 15:03