Сбой AfNetworking в AFHTTPRequestSerializer, когда я включаю пробелы в URL

У меня есть запрос Get с AFNetworking, код:

NSString *url = /*url*/;
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", nil];
[manager GET:urlMessage parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {...}

Я должен включить в URL текст с пробелами. Но если я это сделаю, у меня будет ошибка "Ошибка подтверждения в -[AFHTTPRequestSerializer requestWithMethod:URLString:parameters:error:]" Очевидно, что без пробелов у меня нет ошибок. Знаете ли вы, как я могу включить пробелы в URL без ошибок? Спасибо.

4 ответа

Решение
ulrString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

Это должно решить проблему. поздравил

Попробуй это

[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]

Вы также можете проверить это - AFPercentEscapedQueryStringKeyFromStringWithEncoding а также AFPercentEscapedQueryStringValueFromStringWithEncoding,

- (NSString*) urlEnocodeString { 

    CFStringRef encodedCFString = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, 
                                                                        (__bridge CFStringRef) self, 
                                                                          CFSTR(" "),
                                                                       NULL,
                                                                        kCFStringEncodingUTF8);

    return [[NSString alloc] initWithString:(__bridge_transfer NSString*) encodedCFString];    ;
}

Не рекомендуется использовать пробелы в URL. В любом случае вам нужно URL кодировать свой URL, чтобы заменить пробелы

Для iOS 9 это будет работать:

Objective-C:

[query stringByAddingPercentEncodingWithAllowedCharacters:
        [NSCharacterSet URLQueryAllowedCharacterSet]];
Другие вопросы по тегам