Afnetworking 3.0 迁移:如何 post with xml post body
Afnetworking 3.0 Migration : How to post with xml post body
我正在尝试 POST 一些正文格式为 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 post xml 数据
您可以使用 AFURLSessionManager
class 进行此用途。为此,创建一个 AFURLSessionManager
实例,然后使用 NSURLRequest
从管理器创建 NSURLSessionDataTask 。使用该任务 post 您的数据
例如代码:
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
我正在尝试 POST 一些正文格式为 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 post xml 数据
您可以使用 AFURLSessionManager
class 进行此用途。为此,创建一个 AFURLSessionManager
实例,然后使用 NSURLRequest
从管理器创建 NSURLSessionDataTask 。使用该任务 post 您的数据
例如代码:
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