网络请求与解析实例
2011-08-08 15:06
447 查看
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
NSLog(@"@@@@@@@@@@搜索动作开始向web发请求@@@@@@@@@@");
[self.searchBar resignFirstResponder];
NSString *search = searchBar.text;
NSString *urlString = [@"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=" stringByAppendingString:search];
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0];
self.data = [[NSMutableData data]retain];
[NSURLConnection connectionWithRequest:request delegate:self];
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
NSLog(@"@@@@@@@@@@收到Web服务器的响应@@@@@@@@@@");
[data setLength:0];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)incomingData{
NSLog(@"@@@@@@@@@@Web服务器返回的数据如下@@@@@@@@@@");
NSLog(@"%@",incomingData);
[data appendData:incomingData];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
NSLog(@"@@@@@@@@@@对一个XML元素开始解析@@@@@@@@@@");
NSXMLParser *paser = [[NSXMLParser alloc]initWithData:data];
[paser setDelegate:self];
Elements = [NSMutableArray arrayWithCapacity:0];
[paser parse];
[paser release];
[data release];
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
NSLog(@"Query failed with error : %@",[error localizedDescription]);
[data release];
}
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict{
NSLog(@"@@@@@@@@@@对一个XML元素开始解析@@@@@@@@@@");
Element = @"";
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName{
NSLog(@"@@@@@@@@@@对一个XML元素完成解析@@@@@@@@@@");
[Elements addObject:Element];
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
NSLog(@"@@@@@@@@@@@解析过程中拼接字符串@@@@@@@@@@@@");
NSLog(@"%@",string);
Element = [Element stringByAppendingString:string];
}
-(void)parserDidEndDocument:(NSXMLParser *)parser{
NSLog(@"@@@@@@@@@@@@@@@打印最后的数组@@@@@@@@@@@@@");
NSLog(@"%@",Elements);
city.text = [[[Elements objectAtIndex:0] stringByAppendingString:@" "] stringByAppendingString:[Elements objectAtIndex:1]];
date.text = [Elements objectAtIndex:6];
detail.text = [[[Elements objectAtIndex:10] stringByAppendingString:@"\n"] stringByAppendingString:[Elements objectAtIndex:11]];
}
NSLog(@"@@@@@@@@@@搜索动作开始向web发请求@@@@@@@@@@");
[self.searchBar resignFirstResponder];
NSString *search = searchBar.text;
NSString *urlString = [@"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=" stringByAppendingString:search];
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0];
self.data = [[NSMutableData data]retain];
[NSURLConnection connectionWithRequest:request delegate:self];
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
NSLog(@"@@@@@@@@@@收到Web服务器的响应@@@@@@@@@@");
[data setLength:0];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)incomingData{
NSLog(@"@@@@@@@@@@Web服务器返回的数据如下@@@@@@@@@@");
NSLog(@"%@",incomingData);
[data appendData:incomingData];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
NSLog(@"@@@@@@@@@@对一个XML元素开始解析@@@@@@@@@@");
NSXMLParser *paser = [[NSXMLParser alloc]initWithData:data];
[paser setDelegate:self];
Elements = [NSMutableArray arrayWithCapacity:0];
[paser parse];
[paser release];
[data release];
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
NSLog(@"Query failed with error : %@",[error localizedDescription]);
[data release];
}
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict{
NSLog(@"@@@@@@@@@@对一个XML元素开始解析@@@@@@@@@@");
Element = @"";
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName{
NSLog(@"@@@@@@@@@@对一个XML元素完成解析@@@@@@@@@@");
[Elements addObject:Element];
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
NSLog(@"@@@@@@@@@@@解析过程中拼接字符串@@@@@@@@@@@@");
NSLog(@"%@",string);
Element = [Element stringByAppendingString:string];
}
-(void)parserDidEndDocument:(NSXMLParser *)parser{
NSLog(@"@@@@@@@@@@@@@@@打印最后的数组@@@@@@@@@@@@@");
NSLog(@"%@",Elements);
city.text = [[[Elements objectAtIndex:0] stringByAppendingString:@" "] stringByAppendingString:[Elements objectAtIndex:1]];
date.text = [Elements objectAtIndex:6];
detail.text = [[[Elements objectAtIndex:10] stringByAppendingString:@"\n"] stringByAppendingString:[Elements objectAtIndex:11]];
}
相关文章推荐
- Retrofit发送网络请求和解析json实例
- Android网络请求与JSON解析和数据抓取小实例
- post请求网络数据,返回给主线程更新UI实例
- 用Alamofire进行网络请求的一段代码解析(一)
- 【Android 网络数据解析实现一个简单的新闻实例(一)】
- Volley源码解析(一):网络请求内容
- iOS网络请求数据的JSON解析的新旧方法对比
- 网络请求图片和json解析,在listView中展示出来
- 网络请求和JSON解析
- Android通用网络请求解析框架.9(支持第三方解析框架)
- 网络请求,JSON解析
- [置顶] Android之三种网络请求解析数据(最佳案例)
- Android中解析网络请求的URL
- iOS开发 封装网络请求 ——实例
- android url网络请求+json解析
- 【人工智能】一文为你解析神经网络(附实例、公式)
- 使用HttpURLConnection请求Gson网络解析数据
- Android网络编程之UrlConnection【实例解析】
- Swift 网络请求数据与解析
- 实例解析IPv6下的VC网络编程