【问题标题】:What is the use of the validate() method in Alamofire.request? [closed]Alamofire.request 中的 validate() 方法有什么用? [关闭]
【发布时间】:2017-08-30 08:43:09
【问题描述】:

Alamofire.request(.GET, getUrl("mystuff")).validate() - validate() 方法有什么用?如何使用它来验证服务器连接问题?

【问题讨论】:

  • 您有机会阅读 Alamofire 文档吗? github.com/Alamofire/Alamofire#automatic-validation
  • 我投票决定将此问题作为离题结束,因为可以使用 Google 或类似工具找到答案。此外,提供的答案没有附加价值。这可能只是一条评论,因为回复是从 Alamofire 文档中复制的。

标签: swift validation alamofire


【解决方案1】:

正如documentation on GitHub 所提到的,validate() 不带参数检查状态码是否为 2xx,以及标头中可选提供的Accept 部分是否与响应的Content-Type 匹配。 p>

示例:

Alamofire.request("https://example.com/get").validate().responseJSON { response in
    switch response.result {
    case .success:
        print("Validation Successful")
    case .failure(let error):
        print(error.localizedDescription)
    }
}

您可以为您的自定义验证选项提供statusCodecontentType 参数。

示例:

Alamofire.request("https://example.com/get")
    .validate(statusCode: 200..<300)
    .validate(contentType: ["application/json", "application/xml"])
    .responseData { response in
        [...]
}

如果您想手动查看状态码,可以通过response.response?.statusCode 访问。

示例:

switch response.response?.statusCode {
case 200?: print("Success")
case 418?: print("I'm a teapot")
default: return
}

【讨论】:

  • 我同意你的观点,SO 可以用作澄清的工具。但是,您的答案并没有提供附加值。它只是从文档中复制过来的。相反,如果您能够争论一些新的和有用的东西,它也可能对其他人有帮助。
  • 感谢您更新您的答案。真的很感激。
  • 如果检测到 4xx/5xx 错误怎么办?它是否属于.failure 案例,会出现什么样的错误消息(多语言?)以及我们如何知道哪个错误代码?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-16
  • 1970-01-01
  • 2018-01-24
  • 2020-12-19
  • 2012-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多