NSURLSession 之body Parameter体会

非AFNetworking

- (void)requestPostPath:(NSString *)aPath bodyparams:(id)params block:(void (^)(id  data, NSError *error))block {
         NSMutableArray * parameters = [NSMutableArray new];
        //self.requestParameter为外部传进来的参数字典
        //1.遍历字典
        [params enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
            //2.将参数字典按照key=value的形式存放到数组中
            [parameters addObject:[NSString stringWithFormat:@"%@=%@", key, obj]];
        }];
        //3.创建request
        NSMutableURLRequest * requst = [NSMutableURLRequest requestWithURL:[NSURL URLWithString: aPath]];
        //4.设置请求方式,默认为GET
        requst.HTTPMethod = @"POST";
        [requst setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"contentType"];
        //5.将parameters按照&拼接起来并且放到HTTPBody中,注意:此处的parameters为可变数组,
        requst.HTTPBody = [[parameters componentsJoinedByString:@"&"] dataUsingEncoding:NSUTF8StringEncoding];
        [[[NSURLSession sharedSession] dataTaskWithRequest:requst completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
            NSDictionary *datdica = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
            dispatch_async(dispatch_get_main_queue(), ^{
                block(datdica, error);
            });
        }] resume];
 }

被困扰之苦矣,今得矣解之,何其快哉。

全部评论

相关推荐

纯真的河老师在喝茶:第一个是这个时间点岗位少,第二个是这个简历重复度太高了,10个有9个简历差不多的
点赞 评论 收藏
分享
10-28 10:48
已编辑
门头沟学院 Java
孩子我想要offer:发笔试后还没笔试把我挂了,然后邮箱一直让我测评没测,后面不知道干嘛又给我捞起来下轮笔试,做完测评笔试又挂了😅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务