我在我的API中有一个返回PDF文件内容的方法。
如何在成功回调中访问响应的原始数据?
答案 0 :(得分:0)
所有Siesta响应都以原始数据(基础类型Data
的形式)开始,然后通过transformer pipeline运行。
默认转换器管道根据服务器发送的Content-type
标头解析JSON,文本和图像。该列表不包含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}}部分,其中显示了可能适用于该响应的所有变换器,pipeline
和Resulting configuration
,了解实际服务器响应的转换方式。