Swift Alamofire:如何验证有效请求和有效响应代码

时间:2016-04-02 02:36:46

标签: ios swift rest validation alamofire

我们有这个Alamofire错误处理:

Alamofire.request(.GET, getUrl("mystuff")).responseData { response in
    guard response.result.error == nil else {
       //Handle error
    }
 }

如果无法访问服务器或证书无效等,它可以正常工作

但是如果可以访问服务器但返回404 / etc响应代码,则不会触发此错误处理代码。如何将此用例的支持折叠到此代码中?

4 个答案:

答案 0 :(得分:1)

响应的result属性包含代码,如果它不是nil。 否则,您可以获得statusCode。

if let error = response.result.error 
{
  let statusCode = error.code
} 
else 
{ 
  let statusCode = (response.response?.statusCode)!
}

答案 1 :(得分:0)

我对请求,响应和结果都有效,并且它可以为我工作,我的代码如下所示

    Alamofire.request(.GET, "url", parameters: nil)
                .responseJSON { (request, response, result) -> Void in

                    print(result.value)

                    if(result.isSuccess) {
                        completionBlock( error : nil, responseDict : result.value as! [String : AnyObject])
                    }
                    else {
                        print("error")
    //                    completionBlock(error: errno_t, responseDict: nil)
                    }

            }

希望它有用

答案 2 :(得分:0)

阅读文档很有帮助.....我最终使用了Alamofire validate API method

Alamofire.request(.GET, getUrl("mystuff")).validate().responseData { response in
    guard response.result.error == nil else {
       //Handle error
    }
 }

它处理返回代码的验证以及一般连接问题。还处理内容类型的验证(有关详细信息,请参阅链接的文档...)

答案 3 :(得分:0)

使用

public func validate(_ validation: @escaping Validation) -> Self来自DataRequest