2

我正在尝试将一些数据发布到服务器,正文格式为 XML,一切正常

request.HTTPBody = [self.body dataUsingEncoding:NSUTF8StringEncoding];
request.HTTPMethod = @"POST";
 [request setValue:@"application/xml" forHTTPHeaderField:@"Content-Type"];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

现在在 Afnetworking 3.0 中,他们将 AFHTTPRequestOperation 更改为 AFHTTPSessionManager 以任何方式使用 AFHTTPSessionManager 发布 xml 数据

4

1 回答 1

7

您可以使用AFURLSessionManagerclass 进行此用途。为此,创建一个AFURLSessionManager实例,然后使用您的NSURLRequest. 使用该任务发布您的数据例如代码:

NSMutableURLRequest *request = ....;
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] init];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes =  [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/xml"];
NSURLSessionDataTask *task = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {
        NSString *fetchedXML = [[NSString alloc] initWithData:(NSData *)responseObject encoding:NSUTF8StringEncoding];
        NSLog(@"Response string: %@",fetchedXML);
 }];
[task resume];

更新 如果您使用AFXMLParserResponseSerializer的是响应序列化程序,则添加此代码以开始 xml 解析

NSXMLParser *xmlparser = responseObject;
[xmlparser setDelegate:self];
[xmlparser parse];

并实现NSXMLParserDelegate方法。

你可以在这里找到一个很好的解析 xml 的教程 - XML Parsing with NSXMLParser

于 2016-01-14T06:10:35.690 回答