[英]Get Json response from server by AFNetworking
I'm new to AFNetworking, I'm trying to get response from server by POST method, It's success but not as I expected. 我是AFNetworking的新手,我试图通过POST方法从服务器获取响应,这是成功的,但未达到我的预期。 In fact, I must got some like this: 实际上,我必须得到这样的东西:
{
"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"
}
}
}
But I only get this: 但是我只能得到这个:
data = {
categorylist = {
items = (
);
limitItem = 20;
maxItem = 0;
maxPage = 0;
};
};
status = 1;
}
So what'm I missing? 那我想念什么呢? I can't retrieve all items, here is my code: 我无法检索所有项目,这是我的代码:
-(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);
}];
}
Can you guys help me? 你们能帮我吗? And explain why I missing data from responseObject? 并解释为什么我缺少来自responseObject的数据? Thank you very much 非常感谢你
Well! 好! I found the issue, I forgot one more required param. 我发现了问题,我忘记了另一个必需的参数。 The problem is solved by: 该问题通过以下方法解决:
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);
}];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.