Ho scritto un pod per mappare XML agli oggetti, chiamato XMLMapper. (utilizza la stessa tecnica di ObjectMapper)
È possibile utilizzare il sottosistema Requests per creare facilmente richieste SOAP.
Innanzitutto creare il proprio personalizzato SOAPMessage
:
class HolidayServiceMessage: SOAPMessage {
var countryCode: String?
override func mapping(map: XMLMap) {
super.mapping(map: map)
countryCode <- map["m:countrycode"]
}
}
quindi creare la SOAPEnvelope come:
let soapMessage = HolidayServiceMessage(soapAction: "GetHolidaysAvaible", nameSpace: "http://holidaywebservice.com/HolidayService_v2")
soapMessage.countryCode = "UnitedStates"
let soapEnvelope = SOAPEnvelope(soapMessage: soapMessage)
inviare Finaly richiesta SOAP utilizzando Alamofire:
Alamofire.request("http://holidaywebservice.com/HolidayService_v2/HolidayService2.asmx?wsdl", method: .post, parameters: soapEnvelope.toXML(), encoding: XMLEncoding.soap(withAction: "http://holidaywebservice.com/HolidayService_v2#GetHolidaysAvaible"))
è possibile mappare il Risposta XML agli oggetti rapidi usando il protocollo XMLMappable
.
I parser come https://github.com/cezheng/Fuzi semplificano l'analisi di xml mediante i selettori XPath o CSS. È possibile definire il proprio serializzatore per questo. Dai uno sguardo a https://github.com/tristanhimmelman/AlamofireObjectMapper, che è un buon esempio di creazione dei tuoi serializzatori di risposta Alamofire – cezheng