微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有Alamofire的Swift 2.0 soap请求发送xml参数

我想对此Web服务示例请求: http://www.holidaywebservice.com//HolidayService_v2/HolidayService2.asmx?wsdl

我需要发送一个参数“countryCode”.我不知道怎么能用alamofire做到这一点.以及如何获得解析xml结果的响应.

这就是我在邮差中所做的,但我想知道如何在快速中做同样的事情.

enter image description here

谢谢你的帮助.

解决方法

试试吧

>将发出POST请求
> URL = http://holidaywebservice.com/HolidayService_v2/HolidayService2.asmx?wsdl
>参数将发送到编码部分
>编码:.Custom =>
>创建了一个mutbleRequest
> a.您可以直接使用URL或b.新网址
>重要的是mutableRequest.HTTBody,它是使用必要值放置soap-message的地方(类型String)
>标题可以根据Web服务和API而有所不同,在一种情况下可以具有登录/密码/令牌或仅授权
>行 – > “Content-Type”:或“Content-Length”取决于具体情况.
> SWXMLHash.parse(response.data!)将处理响应,你可以在[AlamoFire / Usage / Response Handling](https://github.com/Alamofire/Alamofire)中看到更多信息

Alamofire.request(.POST,"http://holidaywebservice.com/HolidayService_v2/HolidayService2.asmx?wsdl",parameters: nil,encoding: .Custom({
   (convertible,params) in
       //a.
       let mutableRequest = convertible.URLRequest.copy() as!                NSMutableuRLRequest
       // or 
       //b.
       mutableRequest.URL =NSURL(string: theUrlString)
       let mutableReques02 = NSMutableuRLRequest(URL: theURL!)
       //
       //mutableReques02.HTTPBody =....

       mutableRequest.HTTPBody =       
            "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
            <SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ns1=\"urn:sap-com:document:sap:rfc:functions\"><SOAP-ENV:Body>
              <hs:GetHolidaysAvaible>
              <hs:countrycode> UnitedStates</hs:countrycode>
              </hs:GetHolidaysAvaible>
             </SOAP-ENV:Body></SOAP-ENV:Envelope>".dataUsingEncoding(NSUTF8StringEncoding,allowLossyConversion: false)

    return (mutableRequest,nil)}),headers: 
    ["Username": "login",// Login API
     "Password": "password",// Password API
     "AuthenticatedToken" : "35432",// Authenticated API
     "Authorization": "Basic nasIoUynvo8eyt829409",// Authenticated API
    "Accept" :       "text/xml","Content-Type" : "text/xml; charset=UTF-8",// Type content and charset accept 
    "Accept-Charset" : "UTF-8",])
 .responsePropertyList { response in 
       let xml = SWXMLHash.parse(response.data!)
                print(xml) 
}

注意:我的英语不是很好

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐