objective c parse json from url request

前端 未结 7 1225
醉酒成梦
醉酒成梦 2021-02-06 00:14

I am trying to parse a json string requested from an api located at: http://www.physics.leidenuniv.nl/json/news.php

However, i am having trouble parsing this json. I get

7条回答
  •  刺人心
    刺人心 (楼主)
    2021-02-06 00:29

    Volunteermatch API Objective C

    i am using one common methods for AFNetworking WS Calling. Uses:

    Call WS:

    NSDictionary* param = @{
                            @"action":@"helloWorld",
                            @"query":@"{\"name\":\"john\"}"
                            };
    
    [self requestWithUrlString:@"URL" parmeters:paramDictionary success:^(NSDictionary *response) {
        //code For Success
    } failure:^(NSError *error) {
       // code for WS Responce failure
    }];
    

    Add Two Methods: this two methods are common,u can use these common method in whole project useing NSObject class. also add // define error code like...

    define kDefaultErrorCode 12345

    - (void)requestWithUrlString:(NSString *)stUrl parmeters:(NSDictionary *)parameters success:(void (^)(NSDictionary *response))success failure:(void (^)(NSError *error))failure {
    
    [self requestWithUrl:stUrl parmeters:parameters success:^(NSDictionary *response) {
        if([[response objectForKey:@"success"] boolValue]) {
            if(success) {
                success(response);
                
            }
        }
        else {
            NSError *error = [NSError errorWithDomain:@"Error" code:kDefaultErrorCode userInfo:@{NSLocalizedDescriptionKey:[response objectForKey:@"message"]}];
            if(failure) {
                failure(error);
            }
        }
    } failure:^(NSError *error) {
        if(failure) {
            failure(error);
        }
    }];}
    

    and // Set Headers in Below Method (if required otherwise remove)

    - (void)requestWithUrl:(NSString *)stUrl parmeters:(NSDictionary *)parameters success:(void (^)(NSDictionary *response))success failure:(void (^)(NSError *))failure {
    
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [manager setResponseSerializer:[AFHTTPResponseSerializer serializer]];
    
    
    [manager.requestSerializer setValue:@"WWSE profile=\"UsernameToken\"" forHTTPHeaderField:@"Authorization"];
    
    
    
    [manager GET:stUrl parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
        if([responseObject isKindOfClass:[NSDictionary class]]) {
            if(success) {
                success(responseObject);
            }
        }
        else {
            NSDictionary *response = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
            if(success) {
                success(response);
            }
        }
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
        if(failure) {
            failure(error);
        }
    }];}
    

    For any issues and more Detail please visit..AFNetworking

提交回复
热议问题