2010-10-22 2 views
-2

У меня есть веб-службы, и я хочу сохранить эти данные в SQLite на iPhone и также хочу получить эти данные. Веб-службы включают 14 параметров, а также URL-адрес изображения. Веб-сервис - это SOAP в .NET.Webservice n sqlite

Пожалуйста, помогите мне и предоставьте мне полный код, как это сделать.

+2

Возможно, вы должны начать с вопроса, который не очень, очень близок к «написать мне все приложение для меня». –

+2

Bro я новичок в этой разработке iphone, вот почему я спросил об этом. Если вы не можете помочь, тогда даже не критикуйте таким образом. Желаем вам удачи – Sabby

ответ

3

Веб-службы могут быть в Java, PHP, .NET и т. Д. Но вы должны использовать ту же процедуру для запроса. Здесь я дал пример кода, чтобы сделать запрос и получить ответ от webservices.


-(void)performRequest{ 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"url"]]; 
    NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]]; 
    [request addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
    [request addValue: soapAction forHTTPHeaderField:@"SOAPAction"]; 
    [request addValue: msgLength forHTTPHeaderField:@"Content-Length"]; 
    [request setHTTPMethod:@"POST"]; 
    [request setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]]; 
    NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
    if(theConnection) 
    { 
     webData = [[NSMutableData data] retain]; 
    } 
    else 
    { 
     NSLog(@"theConnection is NULL"); 
    } 
    [pool release]; 
} 

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ 
    [webData setLength: 0]; 
    self.resultArray = [[NSMutableArray alloc] init]; 
} 
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ 
    [webData appendData:data]; 
} 
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{ 
    NSLog(@"ERROR with theConenction"); 
    NSDictionary *errorDic = [NSDictionary dictionaryWithObject:error forKey:@"error"]; 
    [self.resultArray addObject:errorDic]; 
    [connection release]; 
    [webData setLength:0]; 
} 
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{ 
    NSLog(@"DONE. Received Bytes: %d", [webData length]); 
    NSString *theXML = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding]; 
    NSLog(@"%@", theXML); 
    [theXML release]; 
    if([webData length] > 0){ 
     parser = [[NSXMLParser alloc] initWithData:webData]; 
     [parser setDelegate:self]; 
     [parser parse]; 
    } 
} 

В этом примере «веб-данные» (NSData), содержащие данные ответа. Запрос должен быть в формате XML, а также данные ответа будут в формате XML. Используя NSXMLParser, вы можете анализировать данные. Существует несколько методов делегата. Вы должны использовать нижеуказанные методы;


1. - (void)parserDidStartDocument:(NSXMLParser *)parser
2. - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
3. - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
4. - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
5. - (void)parserDidEndDocument:(NSXMLParser *)parser
6. - (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError

В методе 2-го делегата вы получите имя элемента (имя тега xml). в третьем методе делегата вы получите значение для имени элемента.

Надеюсь, это поможет вам.

+1

Спасибо vijay надеюсь, что вы также поможете мне в будущем. – Sabby

Смежные вопросы