我们正在从我们的应用程序访问PDF URL并获取PDF数据。在将我们的代码库Swift2.3转换为Swift4.2后,我们得到0字节的数据作为响应。但是当我们在浏览器中打开相同的URL时,它会显示PDF文件。我们也没有收到任何错误。在Swift2.3代码库中,我们将精确的数据值作为有效字节。我们需要在URLSession中配置什么来获取Swift4.2中的确切数据字节。
// url - PDF服务器网址值
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()
URLSession.dataTask有时会返回没有错误但是零字节。我的解决方法是使用URLSession.downloadTask,并使用localURL的内容来创建数据缓冲区。顺便说一句,使用.utf8编码从此缓冲区创建String失败,而.ascii工作正常。因此,我怀疑URL内容的编码可能是问题。