Мне нужно подключиться к моему веб-сервису SOAP с IPhone, я попробовал подход, описанный ниже, и он работал:
NSURL *url = [NSURL URLWithString:@"http://w3schools.com/webservices/tempconvert.asmx"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url]
NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]];
[theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: @"http://tempuri.org/CelsiusToFahrenheit" forHTTPHeaderField:@"SOAPAction"];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if( theConnection )
{
webData = [[NSMutableData data] retain];
}
else
{
NSLog(@"theConnection is NULL");
}
таким образом я могу получить ответ от Сервиса. Сначала мне нужно создать несколько классов, затем мне нужно проанализировать этот XML и заполнить его объектами данных. Мои вопросы:
Что не так с этим методом? Потому что есть библиотеки типа WSDL2ObjC, который создает код из моего wsdl, или cSOAP, который является клиент-серверной библиотекой SOAP.
Единственный смысл использования библиотеки SOAP заключается в том, что мне не нужно писать классы, в которые будет разбираться мой XML? с моим вышеупомянутым акцентом только кажется, что после разбора xml все будет хорошо, или я что-то упустил?
Почему не используется WSDL2Objc, см. Мой вопрос по этому поводу здесь Нет документации!