美文网首页
使用Swift创建一个SOAP的请求

使用Swift创建一个SOAP的请求

作者: 花早 | 来源:发表于2015-10-08 14:08 被阅读613次

    Swift版本2.0 有一个小地方需要注意在成功的Return我使用了一个第三方的XML转字典的库~访问默认传回来的是NSdata,第三方库叫做XMLDictionary,需要的可以在github上搜索一下~

    /**使用Post方式请求WebCommonService数据,闭包中含有操作UI的方法必须刷新主线程UI

    :param: PostUrl    WebCommonService地址

    :param: SOAPAction SOAPAction响应地址

    :param: SoapBody  SoapBody结构*/

    func SDXmlrequestPost(PostUrl:String,SOAPAction:String,SoapBody:String,Success:(results:NSDictionary) -> Void,Failure:(error:NSError?)->Void){    /

    /创建SOAP消息    let SoapMsg = "\(SoapBody)"    

    //    print(SoapMsg)    

    //创建一个URL请求    let Url = NSURL(string: PostUrl)   

     //创建请求对象    let request = NSMutableURLRequest(URL: Url!, cachePolicy: NSURLRequestCachePolicy.UseProtocolCachePolicy, timeoutInterval: 15)   

     //添加请求头    request.addValue("text/xml; charset=utf-8", forHTTPHeaderField: "Content-Type")   

     request.addValue("\(SoapMsg.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))", forHTTPHeaderField: "Content-Length")   

     request.addValue(SOAPAction, forHTTPHeaderField: "SOAPAction")    request.HTTPMethod = "POST"   

     // 将SOAP消息加到请求中    request.HTTPBody = SoapMsg.dataUsingEncoding(NSUTF8StringEncoding)   

     let seesion = NSURLSession.sharedSession()   

     let dataTask = seesion.dataTaskWithRequest(request) { (data:NSData?, req:NSURLResponse?, error:NSError?) -> Void in       

     if error == nil{           

     //把XML数据转字典          

      return Success(results: NSDictionary(XMLData: data!))      

      }else{           

     return Failure(error: error)        }  

      }   

     //启动任务    dataTask.resume()

    }

    相关文章

      网友评论

          本文标题:使用Swift创建一个SOAP的请求

          本文链接:https://www.haomeiwen.com/subject/uvhnxttx.html