隨着我正在使用的服務,大多數響應都是使用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'是更好的方法。 –