我有以下方法:
Response httpResponse = client.newCall(request).execute();
httpResponse.code();
但在某些情况下(例如,当我断开手机网络,从中国或服务器访问Google时,它会中断),它会为我提供IOException
而不是错误代码。
如何获得像Volley一样的所有HTTP状态代码?
答案 0 :(得分:0)
在这种情况下,您不会获得任何状态代码。阅读documentation:
Response execute() throws IOException
立即调用请求,并阻塞,直到可以处理响应或出错。 调用者可以使用响应的
Response.body
方法读取响应正文。为避免泄漏资源,调用者必须关闭响应主体。请注意,传输层成功(接收HTTP响应代码,标头和正文)并不一定表示应用层成功:响应可能仍指示不满意的HTTP响应代码,如
404
或500
<强>抛出:强>
IOException
:如果由于取消,连接问题或超时而无法执行请求。由于网络在交换过程中可能会失败,因此远程服务器可能会在失败之前接受请求。
IllegalStateException
:当呼叫已经执行时。
如果由于连接问题而无法执行请求,则需要IOException
。