Ios AlamoFire 4.X中的URL编码
我试图在没有任何身份验证的情况下从公共Web服务器获取JPG文件。使用AlamoFire 4.4在Swift 3中进行编码 urlString具有以下值: 我得到一个403错误:Ios AlamoFire 4.X中的URL编码,ios,swift,xcode,alamofire,Ios,Swift,Xcode,Alamofire,我试图在没有任何身份验证的情况下从公共Web服务器获取JPG文件。使用AlamoFire 4.4在Swift 3中进行编码 urlString具有以下值: 我得到一个403错误: Error : Optional(409 bytes) responseValidationFailed(Alamofire.AFError.ResponseValidationFailureReason.unacceptableStatusCode(403)) 我很确定上面发布的URL中的保留字符存在编码问题,但
Error : Optional(409 bytes)
responseValidationFailed(Alamofire.AFError.ResponseValidationFailureReason.unacceptableStatusCode(403))
我很确定上面发布的URL中的保留字符存在编码问题,但我还不知道如何正确地告诉AlamoFire如何编码。任何线索都将受到高度赞赏。谢谢你的帮助 请简单一点
以下是一些帮助您的提示:
- 默认方法是
,因此不需要传递它get
- 参数可能需要为空(因为我认为您不希望传递UIImageView)
- 不要通过存储
然后重新获取来添加额外的不必要的工作[“myImage”:image]
- 不要对索引的
进行不必要的强制转换,因为AnyObject
acceptAlamofire
Parameters=[String:Any]
- 响应是数据,因此请使用
功能responseData
func testingImage(_ completion: @escaping ((UIImage?) -> Swift.Void)) {
let urlString = "https://drscdn.500px.org/photo/36406120/m%3D900_k%3D1_a%3D1/v2?client_application_id=29771&webp=true&sig=97ac488f1336f41d9f3e4a67e6bf99b3bd1aadfb6c9631a6097ff5b4a729a94e"
guard let url = URL(string: urlString) else { return completion(nil) }
Alamofire.request(url).validate().responseData {
guard let data = $0.data else { return completion(nil) }
guard let image = UIImage(data: data) else { return completion(nil) }
completion(image)
}
}
你可以这样称呼它
testingImage() { self.imageView.image = $0 }
$0
表示返回的参数(如果您不想指定名称,则使用该参数),如果中的响应,我注意到您正在使用-encoding:URLEncoding.default,这意味着您正在查询字符串中传递参数。您可以手动将参数添加到您提供的查询字符串中并查看结果吗?因为我没有意识到我可以这样做。。。。我很抱歉。我就这么做了。再次感谢您的帮助,祝您周末愉快。
testingImage() { self.imageView.image = $0 }