Сбой 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]];