不受支持的URL iOS

Nic*_* SD 7 url xcode http objective-c 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}
Run Code Online (Sandbox Code Playgroud)

这是我试图初始化网址的方式:

方法1:

NSString *path=@"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];
Run Code Online (Sandbox Code Playgroud)

方法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"]];
Run Code Online (Sandbox Code Playgroud)

zap*_*aph 32

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);
Run Code Online (Sandbox Code Playgroud)

输出:

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

请参阅URL编码文档的字符集