iOS网络开发(3)使用NSURLSession

   <李>



 iOS网络开发(3)使用NSURLSession


+,defaultSessionConfiguration (NSURLSessionConfiguration  *)   + (NSURLSessionConfiguration  *) ephemeralSessionConfiguration   +,(NSURLSessionConfiguration  *) backgroundSessionConfigurationWithIdentifier: (NSString  *)标识符

<代码>

NSURLSession会话对象的创建:

//,使用默认会话模式,默认的缓存,饼干及证书   + (NSURLSession  *) sharedSession//,使用指定的工作模式   +,(NSURLSession  *) sessionWithConfiguration: (NSURLSessionConfiguration *)配置//,使用指定的工作模式,任务运行时的队列,代理   +,(NSURLSession  *) sessionWithConfiguration: (NSURLSessionConfiguration *) configuration 委托:(id

<代码>



<李>

<强>

@ property(只读),NSURLSessionTaskState 状态   typedef  NS_ENUM (使用NSInteger, NSURLSessionTaskState ), {   ,,,NSURLSessionTaskStateRunning =, 0,,,,,,//,运行状态   ,,,NSURLSessionTaskStateSuspended =,,,,,//,挂起状态   ,,,NSURLSessionTaskStateCanceling =,,,//,取消状态   ,,,NSURLSessionTaskStateCompleted =,,,//,完成状态   };


安康;(空白)cancel ,,,,//,取消任务   安康;(空白)resume ,,,,//,运行任务   安康;(空白)suspend ,,,//,挂起任务


<李>

<强>

安康;(NSURLSessionDataTask  *) dataTaskWithURL: (NSURL  *) url  completionHandler: (void  (^) (NSData  *数据,NSURLResponse  *反应,,NSError  *误差))completionHandler   安康;(NSURLSessionDataTask  *) dataTaskWithRequest:(NSURLRequest  *) request  completionHandler: (void  (^) (NSData  *数据,NSURLResponse  *反应,,NSError *误差))completionHandler

,,,,在块中处理请求后的结果(响应数据,响应对象,错误对象)

,,,,如:发送一个得到请求,获取指定游戏任务信息的JSON数据

NSString  * urlStr =, @“http://localhost/lolShow.php?number=20&从=0”;   时间=NSURL  *, url  [NSURL  URLWithString urlStr):;   时间=NSURLRequest  *, request  [NSURLRequest  requestWithURL: url];//创建数据任务   时间=NSURLSession  *, session  [NSURLSession  sharedSession];   时间=NSURLSessionDataTask  *, dataTask  [session  dataTaskWithRequest: request  completionHandler: ^ (NSData  *, __nullable 数据,NSURLResponse  *, __nullable 反应,NSError  *, __nullable 错误),{   ,,,if  (, error ), {   ,,,,,,,NSLog (@“1, % @”, [error  localizedDescription]);   ,,,,,,,return ;   ,,,}   ,,,//将JSON数据序列化为OC对象   ,,,NSArray  *, arr =, (NSJSONSerialization  JSONObjectWithData: data 选择:0,错误:和错误);   ,,,if  (, error ), {   ,,,,,,,NSLog (@“2, % @”, [error  localizedDescription]);   ,,,,,,,return ;   ,,,}   ,,,//字典转模型   ,,,for  (NSDictionary  *, dict 拷贝arr ), {   ,,,,,,,AMHeroModel  *, model =, (AMHeroModel  heroModelWithDict: dict类型);   ,,,,,,,(self.heroInfoArray  addObject:模型);   ,,,}   ,,,[[NSOperationQueue  mainQueue], addOperationWithBlock: ^ {   ,,,,,,,(self  stopLoading);//刷新UI   ,,,}];   });//启动任务   [dataTask 恢复];


<李>

<强>

安康;(NSURLSessionDataTask  *) dataTaskWithURL: (NSURL  *)的url   null   null   null   null   null   null

iOS网络开发(3)使用NSURLSession