在Alamofire.request中使用validate()方法有什么用?

时间:2017-08-30 08:43:09

标签: swift validation alamofire

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

1 个答案:

答案 0 :(得分:9)

documentation on GitHub所述,validate() 不带参数会检查状态代码是否为2xx,以及标题中可选提供的Accept部分是否与响应相匹配Content-Type

示例:

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
}