Ich versuche, auf Daten von Webdiensten zuzugreifen, die für das Projekt erstellt wurden, an dem ich gearbeitet habe. Ich bin eine Zeichenfolge Erstellen einer AnfrageNSURLConnection sendSynchronousRequest dauert zu lange, um zu antworten
NSMutableString *sRequest = [[NSMutableString alloc] init];
[sRequest appendString:@"<soapenv:Envelope xmlns:soapenv=\"http:blah blah blah /messages\">"];
[sRequest appendString:@"<soapenv:Header/>"];
[sRequest appendString:@"<soapenv:Body>"];
[sRequest appendString:@"<mes:processActionRequest>"];
[sRequest appendString:@"<ProcessAction>"];
[sRequest appendString:@"</mes:processActionRequest>"];
[sRequest appendString:@"</soapenv:Body>"];
[sRequest appendString:@"</soapenv:Envelope>"];
erstellen
Dann habe ich eine URL bin die Schaffung und fordern
NSURL *ServiceURL = [NSURL URLWithString:[[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"webservices" ofType:@"plist"]] valueForKey:@"EndPointURL"]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:ServiceURL];
[request addValue:@"text/xml" forHTTPHeaderField:@"Content-Type"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[sRequest dataUsingEncoding:NSUTF8StringEncoding]];
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:NULL error:NULL];
NSTimeInterval duration = [NSDate timeIntervalSinceReferenceDate] - start;
NSLog(@"Response Time%.4f",duration);
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
return responseData;
Das Problem ist, die Reaktionszeit, die ich in Log gedruckt kommt immer über 20 Sekunden zu sein irgendwie. Aber wenn ich den gleichen Link mit dem eviware/SoapUI-Projekt anklicke, wird es innerhalb einer Sekunde ausgeführt, auch wenn der gleiche Link im Blackberry-Projekt verwendet wird, funktioniert es reibungslos. Ich verstehe nicht, wo ich falsch liege. Warum ist die Antwort nur für das iPhone sehr langsam? Bitte helfen Sie. Wenn ich nicht klar bin, lass es mich wissen. Ich werde versuchen, mehr zu erarbeiten.
Ich habe versucht, Asynchronous API zu verwenden. Es zeigt die gleiche verzögerte Antwort. – jason