如何使用 Alamofire 从服务器获取图像(不是 url 或 NSData)
Posted
技术标签:
【中文标题】如何使用 Alamofire 从服务器获取图像(不是 url 或 NSData)【英文标题】:How to get Image (not url or NSData )from server using Alamofire 【发布时间】:2017-07-19 13:56:08 【问题描述】:我正在尝试使用 Alamofire 从服务器获取图像。它在邮递员参考:附件中工作
以下是我的参考代码:
let headers = ["Authorization" : APITOKEN,"Content_Type" : CONTENT_TYPEVAL]
Alamofire.request(urlString!, method: .get, parameters: nil, encoding: URLEncoding.default, headers:headers ).responseJSON (response) in
switch response.result
case .success(let origObject):
debugPrint(origObject)
if let object = origObject as? Dictionary<String,AnyObject>
completion(.failure(Ya3ClientError.serverUnknownError))
case .failure(let e):
debugPrint("error:\(e.localizedDescription)")
收到错误“JSON 由于错误而无法序列化:\n无法读取数据,因为它的格式不正确。”
任何帮助如何解决这个问题。
【问题讨论】:
您在请求中调用responseJSON
,这意味着响应将被解释为 JSON。毫无意义,因为它是一个二进制文件。
【参考方案1】:
您可以尝试使用.responseData
来获取Data
对象并使用UIImage(data:)
创建图像,而不是使用.responseJson
看看this
【讨论】:
【参考方案2】:您可以从 Data
对象创建一个 UIImage
,该对象是从 Alamofire 的响应中获得的。但是,如果没有看到您的 JSON 响应,我无法提供确切的代码。如果响应仅包含图像作为其数据,那么您可以使用
Alamofire.request(.GET, "https://myUrl/myPicture.png").response (request, response, data, error) in
myImageView.image = UIImage(data: data)
您还可以查看Alamofire Image 库。
【讨论】:
以上是关于如何使用 Alamofire 从服务器获取图像(不是 url 或 NSData)的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Alamofire Swift 4 将图像填充到 UICollectionView
使用消息“Alamofire.AFError.ResponseValidationFailureReason.unacceptableContentType”从存储中获取图像时出错