美文网首页
NSURLSession简单使用GET 、 POST 、NSUR

NSURLSession简单使用GET 、 POST 、NSUR

作者: 懒笨cat | 来源:发表于2017-04-01 16:27 被阅读51次

1.Get请求

-(void)getSession{

//1.快捷方式获得session对象

NSURLSession *session = [NSURLSession sharedSession];

//2.创建请求路径

NSURL *getUrl = [NSURL URLWithString:@""];

//3.通过url初始化task,在block内对返回的数据进行处理

NSURLSessionTask *task = [session dataTaskWithURL: getUrl completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

NSString *jsonString = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];

NSLog(@"%@",jsonString);

}];

//4.启动任务

[task resume]; //所有类型的task都要启动

}

2.POST请求

-(void)postSession
{
    //创建请求路径
    NSURL *postUrl = [NSURL URLWithString:@""];
    
    //创建请求对象
    NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:postUrl];
    
    //设置请求方式
    postRequest.HTTPMethod = @"POST";
    
    postRequest.HTTPBody = [@"" dataUsingEncoding:NSUTF8StringEncoding];
    
    
    //快捷方式获得session对象
    NSURLSession *session = [NSURLSession sharedSession];
    
    //通过url初始化task,在block内部对返回的数据进行处理
    NSURLSessionTask *postTask = [session dataTaskWithURL:postUrl completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        
        NSString *jsonString = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
        NSLog(@"%@",jsonString);
    }];
    
    [postTask resume];  //执行任务
    
}

3.使用NSURLSessionDataDelegate处理网络请求

  • session的delegate为只读,所以要通过以下方法创建session并设置代理
  • //第一个参数:配置参数
  • //第三个参数:NSOperationQueue,请求放在队列里执行
 //1.创建session并设置代理
    NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue alloc]init]];
    
    //2.通过url初始化task
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@""]]];
    //3.启动任务
    [dataTask resume];

实现 NSURLSessionDataDelegate

- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
didReceiveResponse:(NSURLResponse *)response
 completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler
{
    //接收到服务器的响应
    //允许处理服务器响应,才能继续接受服务器返回的数据
    completionHandler(NSURLSessionResponseAllow);
 
}
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
    didReceiveData:(NSData *)data
{
    //收到数据
    //处理每次接收到的数据

}

简单的NSURLSession的使用,大家参考哦😬😊·

相关文章

网友评论

      本文标题:NSURLSession简单使用GET 、 POST 、NSUR

      本文链接:https://www.haomeiwen.com/subject/opiiottx.html