我有一个简单的上传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情况。
我的问题是,我如何validate
此请求的回复?
答案 0 :(得分:8)
验证
默认情况下,无论响应的内容如何,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, "https://httpbin.org/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)
}