swift – Alamofire 3.2:如何验证“上传”POST呼叫的响应?
发布时间:2020-12-14 04:46:06 所属栏目:百科 来源:网络整理
导读:我有一个简单的上传POST调用, Alamofire.upload( .POST,"https://httpbin.org/post",multipartFormData: { multipartFormData in multipartFormData.appendBodyPart(fileURL: unicornImageURL,name: "unicorn") multipartFormData.appendBodyPart(fileURL: r
我有一个简单的上传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) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |