美文网首页
关于OKHttp使用时,报错 java.lang.Illegal

关于OKHttp使用时,报错 java.lang.Illegal

作者: 果汁味Studio | 来源:发表于2021-12-21 11:18 被阅读0次
    问题

    在使用okhttp时,总出现异常:java.lang.IllegalStateException: closed

    原因

    一旦连续两次调用response.body().string(),就会抛出该异常。
    原来在okhttp请求回调中,response.body().string()只能有效调用一次,一旦调用数据流已经关闭了,再次调用就会提示closed。

    解决方案

    通过BufferedSource获取

     ResponseBody responseBody = response.body();
     BufferedSource source = responseBody.source();
     source.request(Long.MAX_VALUE);
     Buffer buffer = source.buffer();
     Charset UTF8 = Charset.forName("UTF-8");
     String body = buffer.clone().readString(UTF8);
    

    相关文章

      网友评论

          本文标题:关于OKHttp使用时,报错 java.lang.Illegal

          本文链接:https://www.haomeiwen.com/subject/pmfbpltx.html