我正在使用内部使用Apache HTTP客户端的Drop-wizard球衣客户端,并且在我的场景中,如果服务器端有任何错误,即它返回状态码在5xx服务器错误。如何干净地检查HTTP返回代码是否在服务器端异常代码系列
使用下面的代码我检查服务器是否返回5XX代码。
if (response.getStatus()/100 == 5) {
// do some work
}
相似的代码是那里的javax.ws.rs.core.Response
类为好,复制下面的代码从这里: -
public static Family familyOf(final int statusCode) {
switch (statusCode/100) {
case 1:
return Family.INFORMATIONAL;
case 2:
return Family.SUCCESSFUL;
case 3:
return Family.REDIRECTION;
case 4:
return Family.CLIENT_ERROR;
case 5:
return Family.SERVER_ERROR;
default:
return Family.OTHER;
}
}
}
现在我的代码在的CheckStyle和PMD的规则失败。说100和5是一个神奇的数字。
我不想比较每个服务器端的异常代码在if条件中的返回状态代码是否还有其他更好的方法可用,通过它我可以检查返回代码是否属于服务器错误。
根据checkstyle规则与数字比较会导致警告'正在使用幻数'。 –
添加一个constanct然后使用它。 请看这里http://pmd.sourceforge.net/pmd-5.0.4/rules/java/controversial.html – gladiator