引言
最近半年一直在学习JavaWeb,落下了iOS。如下寒假来临,自己又有时间进一步学习iOS了。并且伴随了在寒假准备搞定一个项目,工作之余开始自己有意识的要提高,决定深入研究一下”网络”这一块。
NSURLSession
自己开始写的时候发现最基本的网络的请求不能用了,开始寻求答案。
如下:这是“聚合数据官网”的一个有关身份证查询的API
//1、构造URL
NSString *URLString = @"http://apis.juhe.cn/idcard/index?key=官网提供的Key&cardno=身份证号";
NSURL *URL = [NSURL URLWithString:URLString];
//2、构造Request:HTTP请求类型、HTTP请求体、超市、HTTP请求头、
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:URL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:5];
//3、构造Session
NSURLSession *session = [NSURLSession sharedSession];
//4、构造task
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
//请求结束后得到数据
NSError *myError;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&myError];
if (myError == nil) {
NSDictionary *result = [dic objectForKey:@"result"];
if (result) {
NSLog(@"地区:%@",[result objectForKey:@"area"]);
NSLog(@"性别:%@",[result objectForKey:@"sex"]);
NSLog(@"出生日期:%@",[result objectForKey:@"birthday"]);
}
}
}];
//5、唤醒task
[task resume];
还有在iOS 9 中HTTP协议也不能用了,请大家搜一下高级的内容:我的解决方案:改回HTTP:在Info.plist中添加一个Key:App Transport Security Settings。然后在该Key下面添加添加一个Key:Allow Arbitrary Loads,值设为YES.