验证 HTTP 200 和 500 状态码的 Alamofire 响应
Posted
技术标签:
【中文标题】验证 HTTP 200 和 500 状态码的 Alamofire 响应【英文标题】:Validate Alamofire Response for both HTTP 200 and 500 status codes 【发布时间】:2018-12-11 11:23:21 【问题描述】:我想使用Alamofire.request.validate()
来验证http 状态码并返回错误如果它没有通过规则。如您所知,它默认检查它是否为2xx
。但是,我还想添加HTTP 500
。我试着做
Alamofire.request.validate().validate(500)
但它不起作用。另外,因为它只接受序列,所以我不能使用||
运算符。我怎样才能做到这一点?谢谢。
我从下面的帖子中获得了帮助,但找不到任何关于我的问题的信息。
What is the use of the validate() method in Alamofire.request?
【问题讨论】:
Alamofire.request.validate().validate(500)
这是一个错字还是您实际上调用了两次验证?
是的,我打了两次电话。我在 GitHub 上的某个地方找到了它。然而,实际上,这是错误的。顺便说一句,我不知道为什么这个问题会被否决。
var codes = Array(200..<300); codes.append(500); Alamofire.request.validate(statusCode: codes)
? (注:未测试),或一行Alamofire.request.validate(statusCode: Array(200..<300) + [500])
对不起。它不接受数组并且序列没有附加选项。
【参考方案1】:
我可以让 Alamofire 仅验证 HTTP 200 and HTTP 500
状态码,方法是将状态码放入数组中并作为输入提供。希望对您有所帮助:
Alamofire.request(route).validate(statusCode: [200,500]).responseJSON
【讨论】:
以上是关于验证 HTTP 200 和 500 状态码的 Alamofire 响应的主要内容,如果未能解决你的问题,请参考以下文章