Objective-C
Objective-C
HTTP SOAP 1.2 Request and Response using POST
See more HTTP Examples
Demonstrates a working SOAP 1.2 request and response using POST with a live server. You may try running this example with the URLs and data provided. See http://wsf.cdyne.com/WeatherWS/Weather.asmx?op=GetCityWeatherByZIP for details.Note: This example is correct in theory, but no longer works for live testing because the SOAP service provider (cdyne.com) has made changes or discontinued the free service.
Chilkat Objective-C Downloads
#import <CkoHttp.h>
#import <CkoXml.h>
#import <CkoHttpRequest.h>
#import <CkoHttpResponse.h>
BOOL success = NO;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// --------------------------------------------------------------------------------
// Also see Chilkat's Online WSDL Code Generator
// to generate code and SOAP Request and Response XML for each operation in a WSDL.
// --------------------------------------------------------------------------------
CkoHttp *http = [[CkoHttp alloc] init];
CkoXml *soapXml = [[CkoXml alloc] init];
soapXml.Tag = @"soap12:Envelope";
success = [soapXml AddAttribute: @"xmlns:xsi" value: @"http://www.w3.org/2001/XMLSchema-instance"];
success = [soapXml AddAttribute: @"xmlns:xsd" value: @"http://www.w3.org/2001/XMLSchema"];
success = [soapXml AddAttribute: @"xmlns:soap12" value: @"http://www.w3.org/2003/05/soap-envelope"];
[soapXml NewChild2: @"soap12:Body" content: @""];
success = [soapXml GetChild2: [NSNumber numberWithInt: 0]];
[soapXml NewChild2: @"GetCityWeatherByZIP" content: @""];
success = [soapXml GetChild2: [NSNumber numberWithInt: 0]];
success = [soapXml AddAttribute: @"xmlns" value: @"http://ws.cdyne.com/WeatherWS/"];
[soapXml NewChild2: @"ZIP" content: @"60187"];
[soapXml GetRoot2];
NSLog(@"%@",[soapXml GetXml]);
CkoHttpRequest *req = [[CkoHttpRequest alloc] init];
req.HttpVerb = @"POST";
req.SendCharset = NO;
[req AddHeader: @"Content-Type" value: @"application/soap+xml; charset=utf-8"];
[req AddHeader: @"SOAPAction" value: @"http://ws.cdyne.com/WeatherWS/GetCityWeatherByZIP"];
req.Path = @"/WeatherWS/Weather.asmx";
success = [req LoadBodyFromString: [soapXml GetXml] charset: @"utf-8"];
http.FollowRedirects = YES;
CkoHttpResponse *resp = [[CkoHttpResponse alloc] init];
success = [http HttpSReq: @"wsf.cdyne.com" port: [NSNumber numberWithInt: 80] ssl: NO request: req response: resp];
if (success == NO) {
NSLog(@"%@",http.LastErrorText);
return;
}
CkoXml *xmlResponse = [[CkoXml alloc] init];
success = [xmlResponse LoadXml: resp.BodyStr];
NSLog(@"%@",[xmlResponse GetXml]);