iPhone实现XML的POST传递并接收数据

来源:互联网 发布:电脑锣走刀路软件 编辑:程序博客网 时间:2024/05/17 22:46

本文介绍对是iPhone实现XML的POST传递并接收数据,主要是向服务器端传递一个xml数据流,服务器端接受数据并返回一个xml数据类型。

AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验

iPhone实现XML的POST传递并接收数据是本文要介绍的内容,文章是基于代码实现,在iphone开发中,经常会遇到和服务器端交互数据,下面代码是向服务器端传递一个xml数据流,服务器端接受数据并返回一个xml数据类型。

iphone传递数据的代码:

  1. -(void) postxml   
  2. {   
  3.     //prepar request   
  4.     NSString *urlString = [NSString stringWithFormat:@"path"];   
  5.     NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];   
  6.     [request setURL:[NSURL URLWithString:urlString]];   
  7.     [request setHTTPMethod:@"POST"];   
  8.     //set headers   
  9.     NSString *contentType = [NSString stringWithFormat:@"text/xml"];   
  10.     [request addValue:contentType forHTTPHeaderField: @"Content-Type"];   
  11.     //create the body   
  12.     NSMutableData *postBody = [NSMutableData data];   
  13.     [postBody appendData:[[NSString stringWithFormat:@"<Request  Action=\"Login\">"] dataUsingEncoding:NSUTF8StringEncoding]];   
  14.     [postBody appendData:[[NSString stringWithFormat:@"<Body>"] dataUsingEncoding:NSUTF8StringEncoding]];   
  15.     [postBody appendData:[[NSString stringWithFormat:@"<Username>wangjun</Username>"] dataUsingEncoding:NSUTF8StringEncoding]];   
  16.     [postBody appendData:[[NSString stringWithFormat:@"<Password>password</Password>"] dataUsingEncoding:NSUTF8StringEncoding]];   
  17.     [postBody appendData:[[NSString stringWithFormat:@"<PlatformID>2</PlatformID>"] dataUsingEncoding:NSUTF8StringEncoding]];   
  18.     [postBody appendData:[[NSString stringWithFormat:@"<PlatformVersion>3.1.3</PlatformVersion>"] dataUsingEncoding:NSUTF8StringEncoding]];   
  19.     [postBody appendData:[[NSString stringWithFormat:@"<TaskViewerName>IP 1.3</TaskViewerName>"] dataUsingEncoding:NSUTF8StringEncoding]];   
  20.     [postBody appendData:[[NSString stringWithFormat:@"<TaskViewerVersion>3</TaskViewerVersion>"] dataUsingEncoding:NSUTF8StringEncoding]];   
  21.     [postBody appendData:[[NSString stringWithFormat:@"</Body>"] dataUsingEncoding:NSUTF8StringEncoding]];   
  22.     [postBody appendData:[[NSString stringWithFormat:@"</Request>"] dataUsingEncoding:NSUTF8StringEncoding]];   
  23.     //post   
  24.     [request setHTTPBody:postBody];   
  25.     //get response   
  26.     NSHTTPURLResponse* urlResponse = nil;    
  27.     NSError *error = [[NSError alloc] init];    
  28.     NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];    
  29.     NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];   
  30.     NSLog(@"Response Code: %d", [urlResponse statusCode]);   
  31.     if ([urlResponse statusCode] >= 200 && [urlResponse statusCode] < 300) {   
  32.         NSLog(@"Response: %@", result);   
  33.     }   

运行结果是:

  1. 2010-09-09 13:19:25.190 PostXmlDemo1[685:307] 点击我了,哈哈   
  2. 2010-09-09 13:19:28.450 PostXmlDemo1[685:307] Response Code: 200   
  3. 2010-09-09 13:19:28.456 PostXmlDemo1[685:307] Response: 
  4. <Response  Action=’Login’><Cookie>DFGHJYUIILNBV$%^&*gghj^&IUF%^R^DFYUIHNVB
  5. </Cookie><Body><User Name=’用户名’ >< Avatar>登陆用户头像URL</Avatar></User><State>1</State><Description>
  6. 登陆成功后的描述信息。</Description></Body></Response> 
1 0