iOS AFNetworking 2.0 XML 网络服务

标签 ios xml xml-parsing afnetworking-2

我已尝试将 AFNetworking 2.0 与 XML Web 服务调用集成,但我不知道我做错了什么。

首先,我通过扩展 AFHTTPRequestOperationManager 创建了一个共享客户端:

+ (instancetype)sharedClient {
static AFAppDotNetAPIClient *_sharedClient = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    _sharedClient = [[AFAppDotNetAPIClient alloc] initWithBaseURL:[NSURL URLWithString:AFAppDotNetAPIBaseURLString]];
    _sharedClient.responseSerializer = [AFXMLParserResponseSerializer new];
});

return _sharedClient;

然后,我尝试使用 NSXMLParseDelegate 协议(protocol)解析结果,但无法获取任何数据。链接有效。

+ (AFHTTPRequestOperation *)globalTimelinePostsWithBlock {
 return [[AFAppDotNetAPIClient sharedClient] GET:@"http://www.enetpulse.com/wp-content/uploads/sample_xml_feed_enetpulse_soccer.xml" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
     NSXMLParser* parser = [[NSXMLParser alloc]initWithData:operation.responseData];

     [parser setDelegate:(id<NSXMLParserDelegate>)self];
     BOOL result = [responseObject parse];

} failure:nil];}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict  {
NSLog(@"found");

} ...

有人知道我做错了什么吗?

最佳答案

这个答案可能会迟到..

你为什么不试试这样的东西..

NSURL *urlLink = [[NSURL alloc] initWithString:url];
NSURLRequest *request = [NSURLRequest requestWithURL:urlLink];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer = [AFXMLParserResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSXMLParser *XMLParser = (NSXMLParser*)responseObject;
        NHXmlParser *myParser = [[NHXmlParser alloc] init];
        XMLParser.delegate = myParser;
        [XMLParser setShouldProcessNamespaces:YES];
        [XMLParser parse];
        myParser.delegate = self;

    } failure:^(AFHTTPRequestOperation *request, NSError *error){
        NSLog(@"Error:------>%@", [error description]);
    }];
}

这对我来说很好。

关于iOS AFNetworking 2.0 XML 网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19744934/

相关文章:

ios - didReceiveRemoteNotification :fetchCompletionHandler: but the completion handler was never called

ios - 将 UrbanAirShip - header 搜索路径与相对路径集成

.net - 如何在 MVC 中返回 XML 字符串作为操作结果

xml - 能否在 XML 文档中重用相同的命名空间

xml - 通过 bash 脚本重新格式化文件 linux 中的文本

ios - 获取 TableView 的 CustomCell 中的 UIViewController

ios - 如何在表格 View 中创建不同的列?

c++ - Boost 和 xml 解析

java - 如何在 res/layout 文件夹下的 .xml 文件中使用伪代码?安卓

java - 如何通过给定标签名称从 XML 中删除特定元素。公理