iOS开发 ----- AFNetWorkingSession

AFNetWorkingSession

由于iOS9废弃了NSURLConnection,所以,原本的AFNetWorking里的hettrequestmanager这个应该是不行了,虽然依然可以用,但里边仍然含有已经废弃的方法,所以这里总结一下session的用法

请求数据

//启动一个sessionManager
    AFURLSessionManager * dataManager = [[AFURLSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

    //设置响应器,有三种,data ,xml JSON,这里用data 默认时JSON
    dataManager.responseSerializer = [AFHTTPResponseSerializer serializer];

    //初始化请求
    NSURL * dataURL = [NSURL URLWithString:@"http://10.0.8.8/sns/my/user_list.php"];
    NSURLRequest * dataRequest = [NSURLRequest requestWithURL:dataURL];


    //请求数据
    NSURLSessionDataTask * dataTask = [dataManager dataTaskWithRequest:dataRequest completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {


        NSDictionary * dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
        NSLog(@"%@",dict);


    }];
    [dataTask resume];

上传数据

这里说明一下,如果是上传数据的话,这种方式要用NSMutableURLRequest类来生命request,不然会出现各种错误,原作者展示的是url的上传,这个我也不是很清楚,然这样做的话,就不报错了….很奇怪

    AFURLSessionManager * uploadManager = [[AFURLSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
    uploadManager.responseSerializer = [AFHTTPResponseSerializer serializer];

    NSURL * uplpadURL = [NSURL URLWithString:@"http://10.0.8.8/sns/my/upload_headimage.php"];
    NSMutableURLRequest  * uploadRequest = [NSMutableURLRequest requestWithURL:uplpadURL];


    UIImage * uploadImage = [UIImage imageNamed:@"10_7.jpg"];
    NSData * uploadData = UIImageJPEGRepresentation(uploadImage, 1.0);

    uploadRequest.HTTPMethod = @"POST";


    NSURLSessionUploadTask * uploadTask = [uploadManager uploadTaskWithRequest:uploadRequest fromData:uploadData progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {

        NSDictionary * dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];

        NSLog(@"%@",dict);
    } ];
    [uploadTask resume];

另一种上传数据

完全按照官方GitHub上写的,可以上传任意数据
    UIImage * uploadMutableImage = [UIImage imageNamed:@"10_7.jpg"];

    NSData * uploadMutableData = UIImageJPEGRepresentation(uploadMutableImage, 1.0);

    AFURLSessionManager * uploadMutableManager = [[AFURLSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

    uploadMutableManager.responseSerializer = [AFHTTPResponseSerializer serializer];


    NSMutableURLRequest * uploadMutableRequest = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://10.0.8.8/sns/my/upload_headimage.php" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

        [formData appendPartWithFileData:uploadMutableData name:@"headimage" fileName:@"10_7" mimeType:@"iamge/jpeg"];
    } error:nil];


    NSURLSessionUploadTask * uploadMutableTask = [uploadMutableManager uploadTaskWithStreamedRequest:uploadMutableRequest progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {

       NSDictionary * dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];

       NSLog(@"mutableUpLoad : %@",dict);

   }];

    [uploadMutableTask resume];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值