Swift   发布时间:2022-04-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了swift – Alamofire 3.2:如何验证“上传”POST呼叫的响应?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_6@ 我有一个简单的上传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会导致生成错误.@H_450_18@手动验证

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)
                }

大佬总结

以上是大佬教程为你收集整理的swift – Alamofire 3.2:如何验证“上传”POST呼叫的响应?全部内容,希望文章能够帮你解决swift – Alamofire 3.2:如何验证“上传”POST呼叫的响应?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。