Удалить заголовок XML с помощью AFNetworking - PullRequest
0 голосов
/ 31 августа 2018

В настоящее время я получаю свои данные в Интернете, используя AFNetworking, используя код ниже. Моя проблема в том, что responseObject поставляется с тегом заголовка XML:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

Есть ли способ запросить использование AFNetworking без этих тегов? Я знаю, что это можно сделать на NSString, но я не думаю, что это правильный путь. Спасибо!

NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"this is my URL"]];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];

[manager GET:URL.absoluteString parameters:nil progress:nil 
success:^(NSURLSessionTask *task, id responseObject) {
    NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];

} failure:^(NSURLSessionTask *operation, NSError *error) {
    NSLog(@"Wilson: %@", error);
    return;
}];

1 Ответ

0 голосов
/ 01 сентября 2018

Вы можете использовать регулярное выражение для удаления этого фрагмента ответа. Здесь я написал регулярное выражение, которое удаляет его.

NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"this is my URL"]];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];

[manager GET:URL.absoluteString parameters:nil progress:nil
   success:^(NSURLSessionTask *task, id responseObject) {

     NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
     NSString *pattern = @"(<\\?xml.*\\?>)";
     NSError *error = NULL;
     NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:&error];

     NSString *newString = [regex stringByReplacingMatchesInString: string
                                                      options: 0
                                                        range: NSMakeRange(0, [string length])
                                                 withTemplate: @""];
     NSLog(@"the response without XML Header is: %@", newString);

    } failure:^(NSURLSessionTask *operation, NSError *error) {
        NSLog(@"Wilson: %@", error);
        return;
 }];

Я надеюсь, что этот код будет полезен для вашей проблемы.

...