2016-07-04 226 views
-5

我有以下方法:如何在没有连接的情况下使用OkHttp获取HTTP状态码?

Response httpResponse = client.newCall(request).execute(); 
httpResponse.code(); 

但在某些情况下(例如,当我拔下电话网络,从中国访问谷歌或服务器坏了),它给了我一个IOException而不是错误的码。

如何获得像Volley这样的所有HTTP状态码?

+0

由于状态码由服务器**发送**,所以在网络断开或服务器崩溃的情况下,将不会有http状态码。 –

+0

谢谢,我犯了一个错误。 –

回答

0

在这种情况下,您不会得到任何状态码。阅读documentation

Response execute() throws IOException

立即调用该请求,并且块直到响应可以被处理或者是错误的。 调用者可以用响应的Response.body方法读取响应主体。为了避免资源泄漏,调用者必须关闭响应主体。请注意,传输层成功(接收HTTP响应代码,标头和主体)并不一定表示应用层成功:响应仍可能指示不愉快的HTTP响应代码,如404500

抛出:

  • IOException:如果所述请求不能被由于消除,连接问题或超时执行。由于网络在交换过程中可能会失败,因此远程服务器可能会在失败之前接受请求。

  • IllegalStateException:当呼叫已经执行。

一种IOException如果请求不能被由于连接问题执行预期。

相关问题