Diy*_*kir 4 java ioexception apache-httpclient-4.x
在Apache的HttpClient的文档的execute(HttpHost target, HttpRequest request)方法,说:
IOException - 如果出现问题或连接中止
如果我捕获IOException,这会捕获所有 服务器5xx错误吗?
try {
response = client.execute(httpHost, request);
} catch (IOException e) {
// throw custom Exception
} finally {
// close response and client
}
Run Code Online (Sandbox Code Playgroud)
我问的原因是,在这个逻辑之后的其他地方,我们正在做类似以下的事情:
if (response.getStatusLine().getStatusCode() >= 500) {
// Could we ever reach this point after the code above?
}
Run Code Online (Sandbox Code Playgroud)
use*_*740 10
不,HttpClient 不会为任何 500/5xx响应抛出 IOException.
仅当低级别连接失败(例如,无效主机名,没有服务器侦听)或TCP管道异常中断(例如,互联网连接丢失)时,才会发生IOException .
"HTTP 500"是服务器响应 - 有效的服务器响应 - 用于指示错误情况.它有一个状态代码,标题和正文,这是200响应的所有内容.
文档说返回值是" 对请求的[最终]响应 "; 这只要服务器能够返回不管状态代码是真实的一个有效的响应.