2015年10月8日星期四

AFNetWoring 请求XML数据格式

       公司想要重写3年前的APP,我荣幸的获得了这个锻炼机会,负责数据缓存,网络请求,数据解析的任务.也开始了首次接触XML数据的调研......
      AFNetworing2.0提供了XML数据请求格式,但是请求数据格式是NSXMLParser数据类型,需要自己处理数据.
AFNetworing请求(以get请求为例):
/**
 *
 *  @param urlStr   URL 名称
 *  @param params  数据字典
 *  @param success 请求成功返回值
 *  @param fail    请求失败返回值
 */
- (void)Yu_GET_XMLWithUrl:(NSString *)urlStr Params:(NSDictionary*)params success:(void (^)(id json))success fail:(void (^)(NSError *error))fail;
{
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    //设置请求格式
    [manager setResponseSerializer:[AFXMLParserResponseSerializer new]];
    NSString *url = [NSString stringWithFormat:@"%@",urlStr];
    NSLog(@"param == %@", params);
    [manager GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
        if (success) {
            success(responseObject);
        }
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        if (fail) {
            fail(error);
        }
        
    }];
}
愉快的可以用了呢!
 [YuNetworking Yu_GET_XMLWithUrl:@"http://iuxlabs.com/iux/xbrand/api/zine-list.php" Params:nil success:^(id json) {
        NSXMLParser *xmlParser = (NSXMLParser *)json;
        [xmlParser setShouldProcessNamespaces:NO];
        [xmlParser setShouldReportNamespacePrefixes:NO];
        [xmlParser setShouldResolveExternalEntities:NO];
        xmlParser.delegate = self;
        bool bRet=[xmlParser parse];
        NSLog(@"%ld json %@",(long)bRet,xmlParser);
    } fail:^(NSError *error){
        //错误
    }];

然后就开始了我下一步的NSXMLPaser的调研工作


没有评论:

发表评论