Swift Siesta访问响应原始数据

时间:2017-09-19 18:13:22

标签: swift pdf raw-data siesta-swift

我在我的API中有一个返回PDF文件内容的方法。

如何在成功回调中访问响应的原始数据?

1 个答案:

答案 0 :(得分:0)

所有Siesta响应都以原始数据(基础类型Data的形式)开始,然后通过transformer pipeline运行。

默认转换器管道根据服务器发送的Content-type标头解析J​​SON,文本和图像。该列表不包含PDF,因此如果您的服务器发送的内容类型为application/pdf(或任何不是JSON,文本或图像内容类型的内容),则响应将仍为原始{{1在管道的末尾:

Data

如果你没有得到request.onSuccess { entity in guard let data = entity.content as? Data else { print("Huh, got mystery response:", entity.content) return } // do stuff with data } - 如果上面的代码说“嗯” - 那么管道中的某些内容正在改变响应。您可以使用Siesta的详细日志记录来确定:

Data

在日志输出中查找:

  • Siesta.LogCategory.enabled = LogCategory.detailed ,当某个东西向管道添加变换器时记录,
  • 相关请求前Added config的{​​{1}}部分,其中显示了可能适用于该响应的所有变换器,
  • pipelineResulting configuration,了解实际服务器响应的转换方式。