2015-02-01 20 views
7

Mam poprawny adres URL i otrzymuję - nieobsługiwany błąd adresu URL. Czy możesz mi powiedzieć, dlaczego ktoś?Nieobsługiwany adres URL iOS

Jak widać nie jest 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} 

ten sposób starałem się init URL:

Metoda 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]; 

Metoda 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"]]; 

Odpowiedz

28

Adresy URL nie mogą zawierać znaki, które nie znajdują się w zestawie znaków ASCII, takie znaki muszą zostać zmienione.

Zastosowanie stringByAddingPercentEncodingWithAllowedCharacters z zestawu znaków 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); 

Wyjście:

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

Patrz zestaw znaków dla URL Encoding Documentation

+1

Dziękuję bardzo. –

+1

Chłodna idealna odpowiedź :) –

+1

Słodki! Niezła odpowiedź –