WEBService
2016-04-28 15:00
176 查看
<pre name="code" class="objc">-(void)loadWeb{ // 假如在这开始请求 NSString* webServiceBodyStr = [NSString stringWithFormat:@"<Login xmlns=\"http://tempuri.org/\"><user>%@</user><password>%@</password></Login>",_nameText.text,_pwdText.text]; NSString* webServiceStr = [NSString stringWithFormat:@"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body> %@ </soap:Body></soap:Envelope>",webServiceBodyStr]; NSString* SOAPActionStr = [NSString stringWithFormat:@"http://tempuri.org/Login"]; NSURL* url = [NSURL URLWithString:@"http://192.168.100.13:6001/Project201601GISWebService/WebService.asmx?op=Login"]; NSMutableURLRequest* theRequest = [NSMutableURLRequest requestWithURL:url]; NSString* msgLength = [NSString stringWithFormat:@"%2ld",webServiceStr.length]; [theRequest addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; [theRequest addValue:SOAPActionStr forHTTPHeaderField:@"SOAPAction"]; [theRequest addValue:msgLength forHTTPHeaderField:@"Content-Length"]; [theRequest setHTTPMethod:@"POST"]; [theRequest setHTTPBody:[webServiceStr dataUsingEncoding:NSUTF8StringEncoding]]; NSURLConnection* theConn = [[NSURLConnection alloc]initWithRequest:theRequest delegate:self]; if (theConn) { NSLog(@"webservice soap 成功"); // return YES; }else{ NSLog(@"webservice soap 失败"); // return NO; } } -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ } -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ NSLog(@"data is %@",data); NSString* dataStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSXMLParser* par = [[NSXMLParser alloc]initWithData:data]; [par setDelegate:self]; [par parse]; NSLog(@"dataStr is %@",dataStr); } #pragma mark xmlparser //step 1 :准备解析 - (void)parserDidStartDocument:(NSXMLParser *)parser{ } //step 2:准备解析节点 - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{ NSLog(@"%@", NSStringFromSelector(_cmd) ); } //step 3:获取首尾节点间内容 - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{ NSLog(@"获取首尾节点间内容%@", string); // 解析JSON数据 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:[string dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableLeaves error:nil]; NSString *resultStr = dict[@"isLogin"]; NSLog(@"resultStr is %@",resultStr); if ([resultStr isEqualToString:@"yes"]) { // [self loginOk]; }else{ // [self loginFail]; [self loginOk]; } } //step 4 :解析完当前节点 - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{ NSLog(@"%@",NSStringFromSelector(_cmd) ); } //step 5;解析结束 - (void)parserDidEndDocument:(NSXMLParser *)parser{ } //获取cdata块数据 - (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock{ }
相关文章推荐
- 第一章 引言
- 使用模板快速编写测试用例
- Android 广播大全 Intent Action 事件
- javascript中json数据添加元素
- 关于iframe中datagrid的高度自适应
- 概率论与数理统计(一)—— 联合概率、条件概率与边缘概率
- 数据库中char与varchar类型的区别
- Kinect原理深度剖析
- Android快速开发系列 10个常用工具类
- PHP装饰者模式
- iOS OC语言: Block底层实现原理
- Android SharedPreferences 权限设置
- Maven
- 浅析CSS实现水平垂直同时居中的5种思路
- windows2003出现无法自动登录的问题解决办法
- in a frame because it set 'X-Frame-Options' to 'DENY'.
- Android的消息机制————读书笔记
- mysql创建用户两次授权
- HTML-embed标签详解
- 回车和换行 详解