码迷,mamicode.com
首页 > 移动开发 > 详细

IOS AFN 通过body传递参数给服务器

时间:2017-07-10 22:11:08      阅读:3777      评论:0      收藏:0      [点我收藏+]

标签:handle   conf   class   pos   afn   setvalue   using   服务器   error:   

  1. 讲真我对于这种奇葩写法是深恶痛绝,由于奇葩的项目要求和人员的跳槽留下的大坑简直是无语,不希望下一个还是这样被坑。
  2. 先将AFN文件导入 或者pod啊
    NSDictionary *parameters;

    parameters = @{@"type":@"getpath",@"path":_path};
    
//  设置参数  根据你们服务器的格式设置 
    NSString *temp = [NSString stringWithFormat:@"{\"type\":\"getpath\",\"path\":\"%@\"}",_path];

    NSData *data = [temp dataUsingEncoding:NSUTF8StringEncoding];
    
    NSString *requestUrl = [NSString stringWithFormat:@"%@%@",WEBURL_PREFIX,WEBURL_GETDIR];//请求的URL 我是直接从代码上copy的 so 这个应该知道怎么弄吧
    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
  //如果你不需要将通过body传 那就参数放入parameters里面
    NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] requestWithMethod:@"POST" URLString:requestUrl parameters:nil error:nil];
    NSLog(@"requestURL:%@",requestUrl);
    request.timeoutInterval= 10;
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    
    // 设置body 在这里将参数放入到body
    [request setHTTPBody:data];
    
    AFHTTPResponseSerializer *responseSerializer = [AFHTTPResponseSerializer serializer];
    responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",
                                                 @"text/html",
                                                 @"text/json",
                                                 @"text/javascript",
                                                 @"text/plain",
                                                 nil];
    manager.responseSerializer = responseSerializer;
    [[manager dataTaskWithRequest:request uploadProgress:nil downloadProgress:nil completionHandler:^(NSURLResponse *response,id responseObject,NSError *error){
        if(responseObject!=nil){
        
            NSString *result = [[NSString alloc] initWithData:responseObject  encoding:NSUTF8StringEncoding];
            NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
            NSString *type = [jsonDict objectForKey:@"type"];
            NSString *path = [jsonDict objectForKey:@"path"];
        
            if ([type isEqualToString:@"getpath"]) {
            
                if ([path isEqualToString:_path]) {
                
                    _diskList = [jsonDict objectForKey:@"disk"];
                    _folderList = [jsonDict objectForKey:@"folder"];
                    _documentList = [jsonDict objectForKey:@"document"];
                    NSLog(@"%@",@"path is correct");
                }else{
                    NSLog(@"%@",@"path is not correct");
                }
            }else{
                NSLog(@"%@",@"type is not getpath");
            }
            [self.tableView reloadData];
            NSLog(@"%@",result);
        }
    }]resume];

IOS AFN 通过body传递参数给服务器

标签:handle   conf   class   pos   afn   setvalue   using   服务器   error:   

原文地址:http://www.cnblogs.com/dilz/p/7147502.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!