随着我正在使用的服务,大多数响应都是使用XML,但其中一些是纯文本。什么是最好的方式来设置?响应变换例外
目前我有这样的:
// Root should return plain text, don't try to transform it
configureTransformer("/") { (content: String, entity) -> String? in
return content
}
// Most data is XML
configureTransformer("**") { (content: NSData, entity) -> NSXMLDocument? in
return try? NSXMLDocument(data: content, options: 0)
}
configureTransformer("**/properties/*") {
(content: NSData, entity) -> String? in
return String(data: content, encoding: NSUTF8StringEncoding)
}
..但是,当我查询根URL,这将是纯文本,我得到一个错误,因为NSData的 - >不能适用NSXMLDocument变压器。
编辑:也许我真正想要的是应用XML转换器时,内容类型是application/xml。有没有办法做到这一点?
这不工作的原因是贝塔8的,后来'configureTransformer'电话取代早期的默认情况下,所以第一个字符串→字符串变换器甚至不会被应用。如果你为'**/properties/*'配置了String→String块,它将覆盖'**'。但正如你的答案所指出的那样,'Content-type'是更好的方法。 –