1

サーバーからデータをダウンロードするために 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 つずつ呼び出しています。

4

1 に答える 1