2013-11-28 3 views
0

У меня проблема в NSURLConnection с SOAP, она работает правильно во всех классах приложений, но в одном конкретном классе она не работает, как только я вызываю [connection start]; приложение не вызывает вызов назад (функции делегата), и я уверен, что я бегу внутри основного потока и запрашиваю его правильно, мне действительно нужна помощь, спасибо. код:iOS NSURLConnection, No Response found

if(!webData) 
    webData = [[NSMutableData alloc] init]; 

NSString *soapMessage = [NSString stringWithFormat: 
         @"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" 
         "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">\n" 
         "<soap12:Body>\n" 
         "<ActivateUser xmlns=\"http://tempuri.org/\">\n" 
         "<UserID>%@</UserID>\n" 
         "<MelarityNo>%@</MelarityNo>\n" 
         "<Phone>%@</Phone>\n" 
         "<Name>%@</Name>\n" 
         "<Personal>%@</Personal>\n" 
         "<Rank>%@</Rank>\n" 
         "</ActivateUser>\n" 
         "</soap12:Body>\n" 
         "</soap12:Envelope>\n", @"", self.policeManID, self.policeManPhoneNum, @"", self.policeManPersonalID,@""]; 

NSURL* url = [NSURL URLWithString:@"link here.asmx"]; 
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url]; 
NSString *msgLen = [NSString stringWithFormat:@"%d", [soapMessage length]]; 
[req addValue:@"application/soap+xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
[req addValue:@"http://tempuri.org/ActivateUser" forHTTPHeaderField:@"SOAPAction"]; 
[req addValue:msgLen forHTTPHeaderField:@"Content-Length"]; 
[req setHTTPMethod:@"POST"]; 
[req setHTTPBody:[soapMessage dataUsingEncoding:NSUTF8StringEncoding]]; 
if(con) 
    con = nil; 
con = [[NSURLConnection alloc] initWithRequest:req delegate:self]; 
[con start]; 
+0

вы установите эти делегаты в файле заголовка NSURLConnectionDelegate, NSURLConnectionDataDelegate> – shujatAli

+0

и реализованы все необходимые функции обратного вызова ?? – shujatAli

+0

Нет, но он отлично работает без них в других классах !!! –

ответ

0

Скорее всего, что происходит, потому что делегат от вашего NSURLConnection отпущен до NSURLConnection есть время, чтобы назвать эти методы. Я не могу точно сказать, не видя всей картины, но вы должны видеть, когда делегат освобождается ...

0

Я не уверен, что это правильно, но ошибка возникает, может быть.

Space не по умолчанию, если есть изменение пространства для

NSURL* url = [NSURL URLWithString:@"link%20here.asmx"];