iPhone实现XML的POST传递并接收数据是本文要介绍的内容,文章是基于代码实现,在iphone开发中,经常会遇到和服务器端交互数据,下面代码是向服务器端传递一个xml数据流,服务器端接受数据并返回一个xml数据类型。
iphone传递数据的代码:
- -(void) postxml
- {
- //prepar request
- NSString *urlString = [NSString stringWithFormat:@"path"];
- NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
- [request setURL:[NSURL URLWithString:urlString]];
- [request setHTTPMethod:@"POST"];
- //set headers
- NSString *contentType = [NSString stringWithFormat:@"text/xml"];
- [request addValue:contentType forHTTPHeaderField: @"Content-Type"];
- //create the body
- NSMutableData *postBody = [NSMutableData data];
- [postBody appendData:[[NSString stringWithFormat:@"<Request Action=\"Login\">"] dataUsingEncoding:NSUTF8StringEncoding]];
- [postBody appendData:[[NSString stringWithFormat:@"<Body>"] dataUsingEncoding:NSUTF8StringEncoding]];
- [postBody appendData:[[NSString stringWithFormat:@"<Username>wangjun</Username>"] dataUsingEncoding:NSUTF8StringEncoding]];
- [postBody appendData:[[NSString stringWithFormat:@"<Password>password</Password>"] dataUsingEncoding:NSUTF8StringEncoding]];
- [postBody appendData:[[NSString stringWithFormat:@"<PlatformID>2</PlatformID>"] dataUsingEncoding:NSUTF8StringEncoding]];
- [postBody appendData:[[NSString stringWithFormat:@"<PlatformVersion>3.1.3</PlatformVersion>"] dataUsingEncoding:NSUTF8StringEncoding]];
- [postBody appendData:[[NSString stringWithFormat:@"<TaskViewerName>IP 1.3</TaskViewerName>"] dataUsingEncoding:NSUTF8StringEncoding]];
- [postBody appendData:[[NSString stringWithFormat:@"<TaskViewerVersion>3</TaskViewerVersion>"] dataUsingEncoding:NSUTF8StringEncoding]];
- [postBody appendData:[[NSString stringWithFormat:@"</Body>"] dataUsingEncoding:NSUTF8StringEncoding]];
- [postBody appendData:[[NSString stringWithFormat:@"</Request>"] dataUsingEncoding:NSUTF8StringEncoding]];
- //post
- [request setHTTPBody:postBody];
- //get response
- NSHTTPURLResponse* urlResponse = nil;
- NSError *error = [[NSError alloc] init];
- NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
- NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
- NSLog(@"Response Code: %d", [urlResponse statusCode]);
- if ([urlResponse statusCode] >= 200 && [urlResponse statusCode] < 300) {
- NSLog(@"Response: %@", result);
- }
- }
运行结果是:
- 2010-09-09 13:19:25.190 PostXmlDemo1[685:307] 点击我了,哈哈
- 2010-09-09 13:19:28.450 PostXmlDemo1[685:307] Response Code: 200
- 2010-09-09 13:19:28.456 PostXmlDemo1[685:307] Response:
- <Response Action=’Login’><Cookie>DFGHJYUIILNBV$%^&*gghj^&IUF%^R^DFYUIHNVB
- </Cookie><Body><User Name=’用户名’ >< Avatar>登陆用户头像URL</Avatar></User><State>1</State><Description>
- 登陆成功后的描述信息。</Description></Body></Response>
小结
iPhone实现XML的POST传递并接收数据的内容介绍完了,希望本文对你有所帮助。
本文来自:>http://wangjun.easymorse.com/?p=864