我们正在从应用程序访问PDF URL并获取PDF数据。将代码库Swift2.3转换为Swift4.2之后,我们将获得0字节的数据作为响应。但是,当我们在浏览器中打开相同的URL时,它将显示PDF文件。我们也没有收到任何错误。在Swift2.3代码库中,我们将获得准确的数据值作为有效字节。为了在Swift4.2中获取确切的数据字节,我们需要在URLSession中进行任何配置。
// URL-PDF服务器的URL值
let session:Foundation.URLSession = Foundation.URLSession(configuration:URLSessionConfiguration.default delegate:self delegateQueue:nil)
let task = session.dataTask(with: url, completionHandler:{(data,response,error) in
// here data coming as 0 bytes
})
task.resume()
答案 0 :(得分:-1)
URLSession.dataTask有时返回零字节但没有错误。我的解决方法是改用URLSession.downloadTask,并使用localURL的内容创建数据缓冲区。顺便说一句,使用.utf8编码从此缓冲区创建String失败,而.ascii可以正常工作。因此,我怀疑可能是URL内容的编码。