使用AFNetworking进行Web服务数据检索

时间:2014-03-26 18:09:26

标签: ios json afnetworking

在这个问题上陡峭地学习,所以我在某处说出了99%的错误。

为我的第一个应用尝试一个简单的过程。 我想从Web服务获取数据并将某些内容输出到标签。 我是一名.NET开发人员,因此Web服务已经完成,并在浏览器中按预期返回JSON数据。 {" GetVenuesForBrandResult":[{" brandID":0," createdDate":" /日期(-62135596800000 + 0000)/&#34 ;, " venueID":2," venueName":" HMV Records"}]}

在查看SO之后,决定使用AFNetworking,版本2.0,作为pod加载。

所以一切都在获取数据方面有效,但请提出2个问题; 1)Xcode中的输出视图显示数据; GetVenuesForBrandResult =({brandID = 0; createdDate =" / Date(-62135596800000 + 0000)/&#34 ;; venueID = 2; venueName =" HMV Records&#34 ;;     }     ); 这只是用于显示目的的XCode5格式吗?我的数据是真实的json吗? 2)我该如何消费? 尝试检查isKindOfClass是否为nsarray或nsdictionary,如果从未满足条件,则检查这些。这让我怀疑Q1是个问题。

感谢您对Xcode新手的帮助。


根据保罗的出色提示,我的代码的相关部分就在这里; 现在,为了测试目的,Web服务链接是硬编码的

NSString *urlstring =     @"http://hiddenurl/shopBeaconService/Service1.svc/GetVenuesForBra nd/1";
        //NSString *str2 = self.email.text;
        //NSString *str3 = @"/";
        //NSString *str4 = [self.password text];
        //NSString *urlstring = [NSString stringWithFormat:@"%@%@%@%@",str1,str2,str3,str4];

        NSURL *url = [NSURL URLWithString:urlstring];

        NSURLRequest *request = [NSURLRequest requestWithURL:url];

        AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
        operation.responseSerializer = [AFJSONResponseSerializer serializer];
        [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation,id responseObject)
         {
             NSLog(@"%@",responseObject);

            // NSDictionary *item = [responseObject objectForKey:@""];
            // NSString *title = [item objectForKey:@"venueName"];

             //NSLog(@"venue= %@",title);
         } failure:nil];

        [operation start];

1 个答案:

答案 0 :(得分:1)

使用AFJSONResponseSerializer时的响应对象是NSDictionary。您在日志中看到的是[responseObject description]的输出 - 一种打印用于记录目的的描述的方法。

Ray Wenderlich在AFNetworking上有一个很好的tutorial