サーバーからデータをダウンロードするために Soap Web サービスを使用しています。データのダウンロード中に、デバイスがフラッシュ ライトのように点滅します。同期リクエストを使用してデータを取得しています。点滅する理由がわかりませんでした。助けてください、よろしくお願いします。
コードは次のとおりです。
NSString *msgString = [[NSString alloc] initWithFormat:@"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
"xmlns:xsd=\"http://http://www.w3.org/2001/XMLSchema\" "
"xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
"<soap:Body>"
"<GetCategories xmlns=\"http://tempuri.org/\"/>"
"</soap:Body>"
"</soap:Envelope>"];
NSURL *url = [NSURL URLWithString:[DefaultSettings getLink]];
NSMutableURLRequest *req = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30];
//---set the various headers---
NSString *msgLength = [NSString stringWithFormat:@"%d", [msgString length]];
[req addValue:@"text/xml" forHTTPHeaderField:@"Content-Type"];
[req addValue:@"http://tempuri.org/GetCategories" forHTTPHeaderField:@"SOAPAction"];
[req addValue:msgLength forHTTPHeaderField:@"Content-Length"];
//---set the HTTP method and body---
[req setHTTPMethod:@"POST"];
[req setHTTPBody:[msgString dataUsingEncoding:NSUTF8StringEncoding]];
NSError *error;
NSURLResponse *response;
NSData *webData = [NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&error];
xmlParser = [[NSXMLParser alloc] initWithData:webData];
[xmlParser setDelegate:self];
[xmlParser setShouldProcessNamespaces:NO];
[xmlParser setShouldReportNamespacePrefixes:NO];
[xmlParser setShouldResolveExternalEntities:YES];
[xmlParser parse];
この後、データを解析しています。同じ方法で、8 つの SOAP サービスを 1 つずつ呼び出しています。