加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读