iOS notes about url
来源:互联网 发布:东北大学软件学院教师 编辑:程序博客网 时间:2024/05/16 16:08
mac developer library
关于 iOS 获取网络数据
后台线程--》Retrieving Data Synchronously (同步)--》不推荐,必须保证不能在主线程中,if you attempt to perform those network operations synchronously on the main thread, the operations would block your app’s execution until the data has been completely received, an error occurs, or the request times out. This causes a poor user experience, and can cause iOS to terminate your app.
返回数据
if the request succeeds, the contents of the request are returned as an NSData
object and an NSURLResponse
object for the request is returned by reference. IfNSURLConnection
is unable to retrieve the URL, the method returns nil
and any available NSError
instance by reference in the appropriate parameter.
如果在请求中需要认证
If the request requires authentication to make the connection, valid credentials must already be available in the NSURLCredentialStorage
object or must be provided as part of the requested URL. If the credentials are not available or fail to authenticate, the URL loading system responds by sending the NSURLProtocol
subclass handling the connection a continueWithoutCredentialForAuthenticationChallenge:
message
异步 sendAsynchronousRequest:queue:completionHandler: 点击打开链接
//// AJViewController.m// GetWeather//// Created by cxj on 14-7-31.// Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved.//#import "AJViewController.h"@interface AJViewController ()@end@implementation AJViewController- (void)viewDidLoad{ [super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.}- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}- (IBAction)GetData:(id)sender { NSError *error; //加载一个NSURL对象 NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.weather.com.cn/atad/101280501.html"]]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response,NSData *data,NSError *error) { if ([data length] > 0 && error == nil) { NSString *html = [[NSString alloc]initWithData:data encoding:NSASCIIStringEncoding]; //操作 NSLog(@"%@",html); NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error]; NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"]; NSString*result=[NSString stringWithFormat:@"今天是%@,%@ \n%@的天气状况是%@ %@ ",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"], [weatherInfo objectForKey:@"weather1"], [weatherInfo objectForKey:@"temp1"]]; self.DataField.text =result; NSLog(@"weatherInfo字典里面的内容为--》%@", weatherDic ); NSLog(@"%@",result); } else if ([data length] == 0 && error ==nil) { //没有数据 } else if (error != nil) { //超时 } else { } }]; }@end
//将请求的url数据放到NSData对象中
NSData *response = [NSURLConnectionsendSynchronousRequest:request returningResponse:nilerror:&error];
//解析类NSJSONSerialization从response中解析出数据放到字典中
NSDictionary *weatherDic = [NSJSONSerializationJSONObjectWithData:response options:NSJSONReadingMutableLeaveserror:&error];
NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"];
NSString*result=[NSStringstringWithFormat:@"今天是%@,%@ \n%@的天气状况是%@ %@ ",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"], [weatherInfo objectForKey:@"weather1"], [weatherInfo objectForKey:@"temp1"]];
self.DataField.text =result;
NSLog(@"weatherInfo字典里面的内容为--》%@", weatherDic );
NSLog(result);
//// AJViewController.m// GetWeather//// Created by cxj on 14-7-31.// Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved.//#import "AJViewController.h"@interface AJViewController ()@end@implementation AJViewController- (void)viewDidLoad{ [super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.}- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}- (IBAction)GetData:(id)sender { NSError *error; //加载一个NSURL对象 NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.weather.com.cn/atad/101280501.html"]]; //将请求的url数据放到NSData对象中 NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error]; //解析类NSJSONSerialization从response中解析出数据放到字典中 NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error]; NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"]; NSString*result=[NSString stringWithFormat:@"今天是%@,%@ \n%@的天气状况是%@ %@ ",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"], [weatherInfo objectForKey:@"weather1"], [weatherInfo objectForKey:@"temp1"]]; self.DataField.text =result; NSLog(@"weatherInfo字典里面的内容为--》%@", weatherDic ); NSLog(@"%@",result);}@end
- iOS notes about url
- Xamarin.iOS Binding Notes about .dylib and clang compiler
- Xamarin.iOS + MvvmCross - Notes about how to use Mvx TableViewSource
- Notes about JBI..
- notes about C++
- Some Notes About Modules
- Notes about VectorDrawable
- notes about HTTP
- About URL
- Notes about NLP and IR
- Some notes about Class Modeling
- Some notes about performSelector method
- Git notes about remote branch
- Notes about traps and interrupts.
- Notes about process and thread
- Some notes about the time
- Notes about Equinix Cloud Exchange
- about ftp url
- MessagePack, Protocol Buffers和Thrift序列化框架原理和比较说明
- java代码 解析EXCEL(三)
- Xcode iOS开发BUG记录:Undefined symbols for architecture i386 / duplicate symbol _OBJC_CLASS_
- 费用报销过程中可能存在的问题
- 仿酷狗音乐播放器开发日志十五——音乐电台列表控件的实现
- iOS notes about url
- 黑马程序员—java技术blog—第九篇:交通灯管理系统
- 经纬财富:铜川白银操作从菜鸟到高手的诀窍
- 使用网络监视器(IRSI)捕捉和分析协议数据包
- Windows进程通信之剪贴板
- 在终端中用默认程序打开文件
- 软件公司的理念
- 数位DP ACdream 1154 Lowbit Sum
- 蓝牙核心技术概述(五):蓝牙协议规范(irOBEX、BNEP、AVDTP、AVCTP)