解决OKHttp报java.lang.IllegalStateException closed

原因:OkHttp请求回调中response.body().string()只能有效调用一次

在调用response.body().string()方法之后,response中的流就会被关闭,如果我们需要创建出一个新的response给应用层处理。

1
2
3
4
5
6
7
8
9
10
11
12
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
logForRequest(request);
Response response = chain.proceed(request);
MediaType mediaType = response.body().contentType();
String content = response.body().string();
Log.i(TAG, content);
return response.newBuilder()
.body(ResponseBody.create(mediaType, string))
.build();
}

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :