簡體   English   中英

通過AFNetworking從服務器獲取Json響應

[英]Get Json response from server by AFNetworking

我是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的數據? 非常感謝你

好! 我發現了問題,我忘記了另一個必需的參數。 該問題通過以下方法解決:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM