Ios AlamoFire 4.X中的URL编码

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中的保留字符存在编码问题,但

我试图在没有任何身份验证的情况下从公共Web服务器获取JPG文件。使用AlamoFire 4.4在Swift 3中进行编码

urlString具有以下值:

我得到一个403错误:

Error : Optional(409 bytes)
responseValidationFailed(Alamofire.AFError.ResponseValidationFailureReason.unacceptableStatusCode(403))
我很确定上面发布的URL中的保留字符存在编码问题,但我还不知道如何正确地告诉AlamoFire如何编码。任何线索都将受到高度赞赏。谢谢你的帮助

请简单一点

以下是一些帮助您的提示:

  • 默认方法是
    get
    ,因此不需要传递它

  • 参数可能需要为空(因为我认为您不希望传递UIImageView)

  • 不要通过存储
    [“myImage”:image]
    然后重新获取来添加额外的不必要的工作
  • 不要对索引的
    AnyObject
    进行不必要的强制转换,因为
    Alamofire
    accept
    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 }