Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Swift 3,4,5...) Peoplevox WMS AuthenticationProvides an example of a call to the Peoplevox WMS Authenticate using SOAP 1.1.
func chilkatTest() { // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. var success: Bool // Sends a POST that looks like this: // POST /PEOPLEVOX_CLIENT_ID/resources/integrationservicev4.asmx HTTP/1.1 // Content-Type: text/xml;charset=UTF-8 // SOAPAction: http://www.peoplevox.net/Authenticate // Content-Length: (automatically computed and added by Chilkat) // Host: qac.peoplevox.net // // <?xml version="1.0" encoding="utf-8"?> // <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:peop="http://www.peoplevox.net/"> // <soapenv:Header/> // <soapenv:Body> // <peop:Authenticate> // <peop:clientId>PEOPLEVOX_CLIENT_ID</peop:clientId> // <peop:username>PEOPLEVOX_USERNAME</peop:username> // <peop:password>PEOPLEVOX_BASE64_PASSWORD</peop:password> // </peop:Authenticate> // </soapenv:Body> // </soapenv:Envelope> // let sbSoapXml = CkoStringBuilder()! sbSoapXml.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>") sbSoapXml.append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:peop=\"http://www.peoplevox.net/\">") sbSoapXml.append(" <soapenv:Header/>") sbSoapXml.append(" <soapenv:Body>") sbSoapXml.append(" <peop:Authenticate>") sbSoapXml.append(" <peop:clientId>PEOPLEVOX_CLIENT_ID</peop:clientId>") sbSoapXml.append(" <peop:username>PEOPLEVOX_USERNAME</peop:username>") sbSoapXml.append(" <peop:password>PEOPLEVOX_BASE64_PASSWORD</peop:password>") sbSoapXml.append(" </peop:Authenticate>") sbSoapXml.append(" </soapenv:Body>") sbSoapXml.append("</soapenv:Envelope>") // Base64 encode the password and update the SOAP XML. let crypt = CkoCrypt2()! var passwordBase64: String? = crypt.encode("PEOPLEVOX_PASSWORD", charset: "utf-8", encoding: "base64") var numReplacements: Int = sbSoapXml.replace("PEOPLEVOX_BASE64_PASSWORD", replacement: passwordBase64).intValue let req = CkoHttpRequest()! req.httpVerb = "POST" req.sendCharset = true req.charset = "utf-8" req.addHeader("Content-Type", value: "text/xml") req.addHeader("SOAPAction", value: "http://www.peoplevox.net/Authenticate") req.path = "/PEOPLEVOX_CLIENT_ID/resources/integrationservicev4.asmx" success = req.loadBody(from: sbSoapXml.getAsString(), charset: "utf-8") let http = CkoHttp()! http.followRedirects = true var resp: CkoHttpResponse? = http.synchronousRequest("qac.peoplevox.net", port: 443, ssl: true, req: req) if http.lastMethodSuccess != true { print("\(http.lastErrorText!)") return } // We should expect a 200 response if successful. if resp!.statusCode.intValue != 200 { print("Response StatusCode = \(resp!.statusCode.intValue)") print("Response StatusLine: \(resp!.statusLine!)") print("Response Header:") print("\(resp!.header!)") return } // A successful response returns this XML: // <?xml version="1.0" encoding="utf-8" ?> // <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> // <soap:Body> // <AuthenticateResponse xmlns="http://www.peoplevox.net/"> // <AuthenticateResult> // <ResponseId>0</ResponseId> // <TotalCount>1</TotalCount> // <Detail>PEOPLEVOX_CLIENT_ID,7fe13431-c67f-4d52-bcfd-b60fbfa3b0ca</Detail> // <Statuses /> // <ImportingQueueId>0</ImportingQueueId> // <SalesOrdersToDespatchIds /> // </AuthenticateResult> // </AuthenticateResponse> // </soap:Body> // </soap:Envelope> // let xmlResponse = CkoXml()! success = xmlResponse.load(resp!.bodyStr) print("\(xmlResponse.getXml()!)") resp = nil // Show how to get the Detail, which must be the ClientId,SessionId var detail: String? = xmlResponse.chilkatPath("soap:Body|AuthenticateResponse|AuthenticateResult|Detail|*") print("Detail = \(detail!)") } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.