我有一个简单的上传POST调用,
Alamofire.upload( .POST,"https://httpbin.org/post",multipartFormData: { multipartFormData in multipartFormData.appendBodyPart(fileURL: unicornImageURL,name: "unicorn") multipartFormData.appendBodyPart(fileURL: rainbowImageURL,name: "rainbow") },encodingCompletion: { encodingResult in switch encodingResult { case .Success(let upload,_,_): upload.responseJSON { response in debugPrint(response) } case .Failure(let encodingError): print(encodingError) } } )
即使响应是404/500错误,也总是会出现.Success情况.
我的问题是,如何验证此请求的响应?
解决方法
验证
默认情况下,无论响应的内容如何,Alamofire都会将任何已完成的请求视为成功.如果响应具有不可接受的状态代码或MIME类型,则在响应处理程序之前调用validate会导致生成错误.
手动验证
Alamofire.request(.GET,"https://httpbin.org/get",parameters: ["foo": "bar"]) .validate(statusCode: 200..<300) .validate(contentType: ["application/json"]) .response { response in print(response) }
自动验证
自动验证200 … 299范围内的状态代码,并且响应的Content-Type标头与请求的Accept标头匹配(如果提供了一个).
Alamofire.request(.GET,parameters: ["foo": "bar"]) .validate() .responseJSON { response in switch response.result { case .Success: print("Validation Successful") case .Failure(let error): print(error) } }
好吧,最后
case .Success(let upload,_): upload.validate(statusCode: 200..<300) .validate(contentType: ["application/json"]) .response { response in print(response) }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。