<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{
}