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
(Objective-C) Peoplevox WMS AuthenticationProvides an example of a call to the Peoplevox WMS Authenticate using SOAP 1.1.
#import <CkoStringBuilder.h> #import <CkoCrypt2.h> #import <NSString.h> #import <CkoHttpRequest.h> #import <CkoHttp.h> #import <CkoHttpResponse.h> #import <CkoXml.h> // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. BOOL success; // 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> // CkoStringBuilder *sbSoapXml = [[CkoStringBuilder alloc] init]; [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. CkoCrypt2 *crypt = [[CkoCrypt2 alloc] init]; NSString *passwordBase64 = [crypt EncodeString: @"PEOPLEVOX_PASSWORD" charset: @"utf-8" encoding: @"base64"]; int numReplacements = [[sbSoapXml Replace: @"PEOPLEVOX_BASE64_PASSWORD" replacement: passwordBase64] intValue]; CkoHttpRequest *req = [[CkoHttpRequest alloc] init]; req.HttpVerb = @"POST"; req.SendCharset = YES; 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 LoadBodyFromString: [sbSoapXml GetAsString] charset: @"utf-8"]; CkoHttp *http = [[CkoHttp alloc] init]; http.FollowRedirects = YES; CkoHttpResponse *resp = [http SynchronousRequest: @"qac.peoplevox.net" port: [NSNumber numberWithInt: 443] ssl: YES req: req]; if (http.LastMethodSuccess != YES) { NSLog(@"%@",http.LastErrorText); return; } // We should expect a 200 response if successful. if ([resp.StatusCode intValue] != 200) { NSLog(@"%@%d",@"Response StatusCode = ",[resp.StatusCode intValue]); NSLog(@"%@%@",@"Response StatusLine: ",resp.StatusLine); NSLog(@"%@",@"Response Header:"); NSLog(@"%@",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> // CkoXml *xmlResponse = [[CkoXml alloc] init]; success = [xmlResponse LoadXml: resp.BodyStr]; NSLog(@"%@",[xmlResponse GetXml]); // Show how to get the Detail, which must be the ClientId,SessionId NSString *detail = [xmlResponse ChilkatPath: @"soap:Body|AuthenticateResponse|AuthenticateResult|Detail|*"]; NSLog(@"%@%@",@"Detail = ",detail); |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.