Я использую веб-службы Soap и получаю ответ в XML, и этот ответ я храню в NSMutableData, а затем выполняю синтаксический анализ XML и использую NSXMLParser.Моя проблема в том, что иногда это работает, а иногда нет, я не могу определить, в чем проблема, поэтому любой может помочь мне выйти из этой проблемы.Я использую этот код -
NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]];
[theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: @"http://MYLINK......." forHTTPHeaderField:@"MY_action"];
[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_msg = [[NSMutableData data] retain];
}
и получаю также ответ в -
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[webData_msg appendData:data];
}
, но после получения ответа проанализируйте xml здесь -
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
if( xmlParser_msg)
{
[xmlParser_msg release];
xmlParser_msg=nil;
}
xmlParser_msg = [[NSXMLParser alloc] initWithData: webData_msg];
[xmlParser_msg setDelegate: self];
[xmlParser_msg setShouldResolveExternalEntities: YES];
[xmlParser_msg parse];
[connection release];
[webData_msg release];
}
, чем проблемавозникают здесь, иногда NSXMLParserDelegate методы вызывают несколько раз не вызывать.Что здесь не так?Пожалуйста, помогите и извините за любую ошибку на английском языке.