iOS 原生网络请求

get:

{

    //1.确定请求路径

    NSURL *url = [NSURL URLWithString:url_str];

    

    //2.创建请求对象

    //请求对象内部默认已经包含了请求头和请求方法(GET)

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    

    //3.获得会话对象

    NSURLSession *session = [NSURLSession sharedSession];

    

    //4.根据会话对象创建一个Task(发送请求)

    /*

     第一个参数:请求对象

     第二个参数:completionHandler回调(请求完成【成功|失败】的回调)

     data:响应体信息(期望的数据)

     response:响应头信息,主要是对服务器端的描述

     error:错误信息,如果请求失败,则error有值

     */

    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

        

        if (error == nil) {

            //6.解析服务器返回的数据

            //说明:(此处返回的数据是JSON格式的,因此使用NSJSONSerialization进行反序列化处理)

            NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];

            successBlock(dict);

        }

    }];

    

    //5.执行任务

    [dataTask resume];

}

 

post:

{

    //1.创建会话对象

    NSURLSession *session=[NSURLSession sharedSession];

    //2.根据会话对象创建task

    NSURL *url=[NSURL URLWithString:urlStr];

    //3.创建可变的请求对象

    NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];

    //4.修改请求方法为POST

    request.HTTPMethod=@"POST";

    

    //5.设置请求体

    request.HTTPBody=[@"Login=1" dataUsingEncoding:NSUTF8StringEncoding];

    //6.根据会话对象创建一个Task(发送请求)

    /*

     第一个参数:请求对象

     第二个参数:completionHandler回调(请求完成【成功|失败】的回调)

     data:响应体信息(期望的数据)

     response:响应头信息,主要是对服务器端的描述

     error:错误信息,如果请求失败,则error有值

     */

    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error){

        //8.解析数据

        NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];

        NSLog(@"%@",dict);

    }];

    //7.执行任务

    [dataTask resume];

}

你可能感兴趣的:(iOS)