3

我正在努力REST API让您可以拨打电话然后接收图像或pdf。我URLSession.shared.dataTask用来拨打电话,当有图像时,通话成功(但这需要很长时间,超过 5 秒),我可以在UIImageView. 但是当有pdf时,我不知道如何处理结果。API 将图像/pdf 作为“文件流”返回。

当我将数据打印到控制台时,它会打印大小(字节)及其与服务器中相同的大小,因此在某种程度上我有正确的数据,我只是不知道如何查看 pdf。

我正在使用 swift 3、iOS 10、xcode 8。

4

1 回答 1

1

首先,您可能想将您的问题分为两部分。请编辑它并再次询问第二部分。

这个话题有两个部分

1.下载PDF并保存在文件系统中

2.获取保存在文件系统中的pdf并使用UIWebView或阅读它UIDocumentInteractionController

所以,我将解释第一个。

如果您使用 REST HTTP 客户端,则可以完成第一个:Alamofire:Swift 中的优雅 HTTP 网络。所以不需要在URLSession这种情况下使用,如果你这样做,你将不得不写很多行。这很简单。所以,我想让你试试。如果您需要URLSession,请发表评论。

那么如何使用以下方式下载pdf Alamofire

let destination: DownloadRequest.DownloadFileDestination = { _, _ in
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
//.documentDirectory means it will store in Application Document Folder
let fileURL = documentsURL.appendPathComponent("data.pdf")

      return (fileURL, [.removePreviousFile, .createIntermediateDirectories])
}

Alamofire.download(urlString, to: destination).response { response in
print(response)

     if response.error == nil, let filePath = response.destinationURL?.path {
           // do anything you want with filePath here.
           // Here what you have to do Step 2. (Read the file that you downloaded)
     }
}

此下载过程不包括请求带有编码参数的下载链接。这只是简单的方法。

于 2016-12-20T10:24:56.103 回答