okhttp 使用response.code()之后不能使用response.body()
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.d(logTag, String.valueOf(response.code()));
if (response.code() == 404) {
throw new IOException(String.format("请求缺少IMEI参数,response code:%s", response.code()));
} else if (response.code() == 405) {
Message message = new Message();
message.what = 3;
handler.sendMessage(message);
throw new IOException(String.valueOf(response.code()));
} else if (response.body().string() == "IMEIForbidden") {
Message message = new Message();
message.what = 4;
handler.sendMessage(message);
throw new IOException(String.valueOf(response.code()));
} else if (!response.isSuccessful()) {
throw new IOException(String.format("请求版本时网络异常,response code:%s", response.code()));
}
LastVersion = response.body().string();
如上述代码,我想先根据返回的code判断是哪些情况,然后获取body中的String,结果报
java.lang.IllegalStateException: closed
错误
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
} else if (response.body().string() == "IMEIForbidden") {
并不是
code()
的原因,而是这句代码的原因吧。body()
只能读取一次。