【问题标题】:Validate Alamofire Response for both HTTP 200 and 500 status codes验证 HTTP 200 和 500 状态码的 Alamofire 响应
【发布时间】: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])
  • 对不起。它不接受数组并且序列没有附加选项。

标签: ios swift alamofire


【解决方案1】:

我可以让 Alamofire 仅验证 HTTP 200 and HTTP 500 状态码,方法是将状态码放入数组中并作为输入提供。希望对您有所帮助:

Alamofire.request(route).validate(statusCode: [200,500]).responseJSON

【讨论】:

    猜你喜欢
    • 2021-03-15
    • 2015-05-21
    • 2016-01-18
    • 2011-12-21
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 2016-01-07
    相关资源
    最近更新 更多