为何HTTP请求返回201 Created时httpAuth.isRequestSuccess()仍为false?
HTTP 201状态码下
httpAuth.isRequestSuccess()返回false的原因 
核心原因
httpAuth.isRequestSuccess()的内部判定逻辑大概率只把200 OK当成请求成功的唯一标准,没有将201这类属于2xx系列的成功状态码纳入判断范围。
常见场景
很多自定义HTTP工具类在设计成功判断逻辑时,会默认只校验状态码是否等于200,忽略了2xx家族里其他合法的成功状态码(比如201资源创建成功、204无内容返回等)。这类方法的源码通常类似:
public boolean isRequestSuccess() { return this.statusCode == 200; }
解决办法
修改方法的判断逻辑,将状态码的校验范围扩大到整个2xx区间(200-299),就能覆盖所有标准的HTTP成功状态:
public boolean isRequestSuccess() { return this.statusCode >= 200 && this.statusCode < 300; }
内容的提问来源于stack exchange,提问作者Hardik Borad
相关产品推荐
相关产品推荐

