2015-02-01 6 views
7

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

Как вы можете видеть, что есть HTTP: //

// http://fr.radiovaticana.va/news/2015/02/01/le_pape_fran%C3%A7ois_%C3%A0_sarajevo_le_6_juin_prochain/1121065 

Error description=Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo=0x78f97920 {NSUnderlyingError=0x79f78bd0 "unsupported URL", NSLocalizedDescription=unsupported URL} 

Это, как я пытался инициализировать URL:

Метод 1:

NSString *[email protected]"http://fr.radiovaticana.va/news/2015/02/01/le_pape_françois_à_sarajevo_le_6_juin_prochain/1121065"; 
NSURL *url=[NSURL URLWithString:path]; 
NSMutableURLRequest * request =[NSMutableURLRequest requestWithURL:url]; 

Способ 2:

NSMutableURLRequest * request =[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://fr.radiovaticana.va/news/2015/02/01/le_pape_françois_à_sarajevo_le_6_juin_prochain/1121065"]]; 

ответ

28

URL-адрес не может содержать символы, которые не входят в набор символов ASCII, такие символы должны быть экранированы.

Использование stringByAddingPercentEncodingWithAllowedCharacters с символьным набором URLQueryAllowedCharacterSet

NSString *path = @"http://fr.radiovaticana.va/news/2015/02/01/le_pape_françois_à_sarajevo_le_6_juin_prochain/1121065"; 
NSString *escapedPath = [path stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; 
NSLog(@"escapedPath: %@", escapedPath); 

Выход:

 
escapedPath: http://fr.radiovaticana.va/news/2015/02/01/le_pape_fran%C3%A7ois_%C3%A0_sarajevo_le_6_juin_prochain/1121065\

См Набор символов для URL Encoding Documentation

+1

Спасибо очень много. –

+1

Прохладный отличный ответ :) –

+1

Sweet! Хороший ответ –

Смежные вопросы