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

Alamofire怎么请求WebService

func reqWebService() { let URL = NSURL(string: "http://115.29.41.12:83/serForImccoy.asmx")! let action: String = "http://imccoy.com/webservices/isUser" let mutableuRLRequest: NSMutableuRLRequest = NSMutableuRLRequest(URL:URL) let values = "{\"userId\": \"test\",\"pwd\": \"pwd\"}"; let soapMsg: String = toSoapMessage("isUser",params: "json",paramValues: values) //mutableuRLRequest.setValue("application/soap+xml; charset=utf-8",forHTTPHeaderField: "Content-Type") //么的,oc中,Content-Type是application/soap+xml就可以访问,swift里,就不行,必须与.asmx接口保持一致! mutableuRLRequest.setValue("text/xml; charset=utf-8",forHTTPHeaderField: "Content-Type") mutableuRLRequest.setValue(action,forHTTPHeaderField: "SOAPAction") mutableuRLRequest.setValue(String(soapMsg.length),forHTTPHeaderField: "Content-Length") mutableuRLRequest.HTTPMethod = "POST" mutableuRLRequest.HTTPBody = soapMsg.dataUsingEncoding(NSUTF8StringEncoding) var result = "" Alamofire.request(mutableuRLRequest).responseString(encoding: NSUTF8StringEncoding) { (_,_,result: String?,_) -> Void in println("服务器返回的内容:\(result!)") } } func toSoapMessage(methodName: String,params: String,paramValues: String) -> String { var message: String = String() message += "<?xml version=\"1.0\" encoding=\"utf-8\"?>" message += "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" message += "<soap:Body>" message += "<\(methodName) xmlns=\"http://imccoy.com/webservices/\">" message += "<\(params)>\(paramValues)</\(params)>" message += "</\(methodName)>" message += "</soap:Body>" message += "</soap:Envelope>" println("请求消息体: \(message)") return message }

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

相关推荐