OkHttp请求回调中response.body().string()如何调用两次
2017-09-19 11:15
1996 查看
如果你已经调用了response.body().string()一次,再次调用会提示你IllegalStateException: closed,为什么会发生这样的情况,你可以看下面的博客
http://blog.csdn.net/m_xiaoer/article/details/72859908
但是有时候你非要调用response.body().string()两次,下面是一种解决方案,就是读取buffer之前,先对buffer进行clone一下。这时候你可以拿到返回的数据,然后你就可以继续调用调用response.body().string()了
参考地址:https://stackoverflow.com/questions/27922703/accessing-body-string-of-an-okhttp-response-twice-results-in-illegalstateexcepti
http://blog.csdn.net/m_xiaoer/article/details/72859908
但是有时候你非要调用response.body().string()两次,下面是一种解决方案,就是读取buffer之前,先对buffer进行clone一下。这时候你可以拿到返回的数据,然后你就可以继续调用调用response.body().string()了
ResponseBody responseBody = response.body(); BufferedSource source = responseBody.source(); source.request(Long.MAX_VALUE); // request the entire body. Buffer buffer = source.buffer(); // clone buffer before reading from it String responseBodyString = buffer.clone().readString(Charset.forName("UTF-8")) Log.d("TAG", responseBodyString);
参考地址:https://stackoverflow.com/questions/27922703/accessing-body-string-of-an-okhttp-response-twice-results-in-illegalstateexcepti
相关文章推荐
- OkHttp请求回调中response.body().string()只能有效调用一次
- OkHttp请求回调中response.body().string()只能有效调用一次,为什么?
- OkHttp请求回调中response.body().string()只能有效调用一次问题
- OkHttp踩坑随笔为何 response.body().string() 只能调用一次
- OkHttp中 response.body().string()只能调用一次分析~~~
- okhttp发送post(json)请求数据,出现不走response.body().string(),单起一行打印的异常
- Okhttp拦截器统一异常处理并多次读取response.body().string()
- OkHttp踩坑记:为何 response.body().string() 只能调用一次?
- okhttp无法获取response.body().string()的问题解决
- Okhttp3 中响应回来的数据response.body().string()
- 为何 response.body().string() 只能调用一次
- OKhttp之ResponseBody.string()返回NULL
- 使用AJAX调用Spring controller 并返回map对象,@ResponseBody 只能返回string的解决方案:
- SpringMVC中在使用@ResponseBody时如何将Date类型的日期返回指定格式的json数据
- SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法
- springmvc 请求参数中文乱码 ,@ResponseBody 返回中文乱码问题
- SpringMVC如何区分返回页面和返回数据?@ResponseBody注解
- okHttp之get post请求 调用相机
- Spring MVC中默认的ResponseBody为String的乱码问
- 如何用Java回调和线程实现异步调用