如何从 Web 获取 base64 并在 Swift 中解码?
Posted
技术标签:
【中文标题】如何从 Web 获取 base64 并在 Swift 中解码?【英文标题】:How to get base64 from web and decode in Swift? 【发布时间】:2016-12-22 04:10:23 【问题描述】:我是 Swift 新手,在网上找了很长时间,但没有用。
我想从 web 服务器解码 base64,我确定 base64 数据是正确的,但我无法转换为图像。
这是base64字符串
enter link description here
这是我的代码
Alamofire.request("http://www.MyWebService//MyWebService/MyWebService.asmx/MyWebService").response response in
print("Request: \(response.request)")
print("Response: \(response.response)")
print("Error: \(response.error)")
if let data = response.data, let utf8Text = String(data: data, encoding: .utf8)
print("Data: \(utf8Text)")
self.getdata(data: data)
func getdata(data: Data)
let parser = XMLParser(data: data)
parser.delegate = self
guard parser.parse() else
print("xml parse error: \(parser.parserError?.localizedDescription)")
return
// get the parsedXMLString from
guard let value = parsedXMLString, let jsonData = value.data(using: .utf8) else
print("cannot convert to data")
print("string: \(parsedElementValue)")
return
print("jsondata:\(jsonData)")
// try now parsing the JSON body
do
if let jsonArray = try? JSONSerialization.jsonObject(with: jsonData, options: .allowFragments) as? [[String]]
self.XmlImage = jsonArray!
print("data:\(self.XmlImage)")
else
print("data didn't get")
extension ViewController: XMLParserDelegate
func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:])
if elementName == "string"
parsedElementValue = ""
func parser(_ parser: XMLParser, foundCharacters string: String)
parsedElementValue?.append(string)
func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?)
if elementName == "string"
parsedXMLString = parsedElementValue
parsedElementValue = nil
XmlImage 是获取“数据未获取”。我无法下载照片,因为这是 ios 版。
想知道这样做是否是一种好习惯以及最好的方法是什么?
【问题讨论】:
【参考方案1】:为了获得最佳效果,您只需发送图片网址作为响应。但从您目前的情况来看,您可以按照以下步骤操作。
从 base64 字符串中获取图像。首先,您需要从 base64 获取数据,然后您可以从该数据中创建图像。
第一步:从base64获取数据
let encodedImageData = ... web base64 string ...
let imageData = NSData(base64EncodedString: encodedImageData options: .allZeros)
第二步:从数据中获取图片
let image = UIImage(data: imageData)
第 3 步: 将 Image 设置为您的 UIImageView。
imageView.image = image
【讨论】:
以上是关于如何从 Web 获取 base64 并在 Swift 中解码?的主要内容,如果未能解决你的问题,请参考以下文章
从 icloud 保存 pdf 并在 swift 3 中转换为 base64