【问题标题】:Get Json response from server by AFNetworking通过 AFNetworking 从服务器获取 Json 响应
【发布时间】:2015-10-12 03:24:10
【问题描述】:

我是 AFNetworking 的新手,我正在尝试通过 POST 方法从服务器获取响应,它是成功的,但并不像我预期的那样。事实上,我必须得到一些这样的:

{
  "status": true,
  "data": {
    "categorylist": {
      "items": [
        {
          "CategoryID": "24",
          "CategoryName": "Soup Set",
          "Description": "Soup Set is set for yummy soup with classic and premium soups.",
          "ImageSource": "http://quickorder.gliteservices.com/assets/images/categories/soupset.jpg",
          "CategoryType": "2"
        },
        {
          "CategoryID": "32",
          "CategoryName": "Drinks",
          "Description": "Quench your thirst by ordering one of the drinks",
          "ImageSource": "http://quickorder.gliteservices.com/assets/images/categories/Drinks.jpg",
          "CategoryType": "2"
        }
      ],
      "maxPage": "1",
      "maxItem": "9",
      "limitItem": "10"
    }
  }
}

但我只得到这个:

data =     {
        categorylist =         {
            items =             (
            );
            limitItem = 20;
            maxItem = 0;
            maxPage = 0;
        };
    };
    status = 1;
}

那么我错过了什么?我无法检索所有项目,这是我的代码:

-(void)getCategoryList:(void (^)(NSArray *, NSError *))completion{
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"];
    manager.requestSerializer = [AFJSONRequestSerializer serializer];

    [manager POST:[NSString stringWithFormat:@"%@%@",URL_BASE,CATEGORY_LIST_URL] parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"Response received: %@", [responseObject description]);
        NSMutableArray *arrCategory;
        NSError *error;
        [ParserClass parseCategoryListWithData:responseObject withArray:&arrCategory withError:&error];

        if (error) {
            completion(nil, error);
        }else{
            completion(arrCategory, nil);
        }
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        completion(nil, error);
    }];
}

你们能帮帮我吗?并解释为什么我从 responseObject 中丢失数据?非常感谢

【问题讨论】:

  • responseObject 中打印的是哪个值?

标签: ios afnetworking


【解决方案1】:

好吧!我发现了问题,我忘记了另一个必需的参数。问题通过以下方式解决:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"];
manager.requestSerializer = [AFJSONRequestSerializer serializer];

NSDictionary *params = @{@"limit":@"10", @"start":@"0", @"ClientID":@"2"};

[manager POST:[NSString stringWithFormat:@"%@%@",URL_BASE,CATEGORY_LIST_URL] parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"Response received: %@", [responseObject description]);
    NSMutableArray *arrCategory;
    NSError *error;
    [ParserClass parseCategoryListWithData:responseObject withArray:&arrCategory withError:&error];

    if (error) {
        completion(nil, error);
    }else{
        completion(arrCategory, nil);
    }
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    completion(nil, error);
}];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    相关资源
    最近更新 更多