【发布时间】:2017-08-03 17:27:57
【问题描述】:
我正在尝试从公共网络服务器获取 JPG 文件,而无需任何身份验证。使用 AlamoFire 4.4 在 Swift 3 中完成编码
let url = URL(string: urlString)
let myParameters: [String : AnyObject] = ["myImage": image, "myBlurredImage": blurredImage, "index": index as AnyObject]
let croppedSize = CGSize(width: self.scrollViewWidth!, height: self.scrollViewHeight!)
self.apicounterPerRequest += 1
Alamofire.request(url!, method: .get, parameters: myParameters, encoding: URLEncoding.default)
.validate()
.response { response in
let myImage = myParameters["myImage"] as! UIImageView
let myBlurredImage = myParameters["myBlurredImage"] as! UIImageView
let index = myParameters["index"] as! Int
if let downloadedImage = UIImage(data: response.data!) {
myImage.image = downloadedImage
self.displayed500PxPhoto[index].uiimage = downloadedImage
myBlurredImage.image = PhotoManager.imageWithSize(downloadedImage, size: croppedSize)
completion({
print("Done Downloading")
})
} else {
print("Error : \(response.data)")
}
if response.error != nil {
print(response.error!)
self.showAlert("One or more photos could not be downloaded. Please try again.")
completion({
throw response.error!
})
}
}
我收到 403 错误:
Error : Optional(409 bytes)
responseValidationFailed(Alamofire.AFError.ResponseValidationFailureReason.unacceptableStatusCode(403))
我很确定上面发布的 URL 中的保留字符存在编码问题,但还不知道如何正确地告诉 AlamoFire 如何对其进行编码。任何线索都受到高度赞赏。感谢您的帮助。
【问题讨论】:
-
我注意到您正在使用 - encoding: URLEncoding.default 这意味着您在查询字符串中传递参数。是否可以手动将参数添加到您提供的查询字符串中,看看结果如何?