iOS_网络开发

NSUrlConnection

使用 NSUrlConnection 需要借助一下几个对象

  • NSURLRequest:建立了一个请求,可以指定缓存策略、超时时间。和NSURLRequest对应的还有一个NSMutableURLRequest,如果请求定义为NSMutableURLRequest则可以指定请求方法(GET或POST)等信息。

  • NSURLConnection:用于发送请求,可以指定请求和代理。当前调用NSURLConnection的start方法后开始发送异步请求。

基本使用

iOS_网络开发_第1张图片
基本使用

error:

App Transport Security has blocked a cleartext HTTP (http://) resource load

在iOS9 beta1中,苹果将原http协议改成了https协议,使用 TLS1.2 SSL加密请求数据。

pInfo

NSUrlSession

NSURLSession提供了配置会话缓存、协议、cookie和证书能力,这使得网络架构和应用程序可以独立工作、互不干扰。另外,NSURLSession另一个重要的部分是会话任务,它负责加载数据,在客户端和服务器端进行文件的上传下载

  • NSURLSessionData
  • NSURLSessionUploadTask
  • NSURLSessionDownloadTask

这三个类都是NSURLSessionTask这个抽象类的子类,相比直接使用NSURLConnection,NSURLSessionTask支持任务的暂停、取消和恢复,并且默认任务运行在其他非主线程中

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error){
    //id result = [NSJSONSerialization JSONObjectWithData:dara options:0 error:nil];
    
    NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);

    dispatch_async(dispatch_get_main_queue(), ^{
        NSLog(@"更新UI");
    });
}];
[task resume];

NSWebView

你可能感兴趣的:(iOS_网络开发)