2009-06-25 8 views
3

J'ai un code similaire au suivant avec une URL comme ça ... Si j'utilise le premier * url, la page web retournera null. Si je mets cette URL dans un système de raccourcissement d'URL comme bit.ly cela fonctionne et renvoie les pages HTML comme une chaîne. Je peux seulement penser que j'ai des caractères invalides dans mon premier * url? Des idées?stringWithContentsOfURL ne fonctionne pas avec certaines chaînes

NSString *url [email protected]"http://www.testurl.com/testing/testapp.aspx/app.detail/params.frames.y.tpl.uk.item.1.cm_scid.TB-test/left.html.|metadrill,html/walk.yah.ukHB?cm_re=LN-_-OnNow-_-TestOne"; 

//above *url does not work, one below does 
NSURL *url =[NSURL URLWithString: @"http://bit.ly/shortened"]; 
NSString *webpage = [NSString stringWithContentsOfURL:url]; 

Répondre

3

Vous avez probablement besoin d'échapper à certains personnages de la première URL, comme suit:

NSString *url [email protected]"http://www.testurl.com/testing/testapp.aspx/app.detail/params.frames.y.tpl.uk.item.1.cm_scid.TB-test/left.html.|metadrill,html/walk.yah.ukHB?cm_re=LN-_-OnNow-_-TestOne"; 
NSString *escapedURL = [url stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
NSString *webpage = [NSString stringWithContentsOfURL:[NSURL URLWithString:escapedURL]];

La construction de l'URL et la récupération échouera si l'URL contient des caractères qui ne sont pas correctement se sont échappés (en regardant votre URL, c'est probablement le tuyau (|), le point d'interrogation ou le trait de soulignement).

+0

Merci Tim, a travaillé très bien! Que voulez-vous dire être "échappé"? –

+0

Un caractère "échappé" est représenté par le code hexadécimal qui se traduit par le caractère, plutôt que par le caractère lui-même. Par exemple, dans les URL, un espace est correctement représenté par sa représentation hexadécimale "échappée"% 20. Le% indique au serveur qu'un caractère est échappé et les deux caractères suivants sont traités comme des hexs et convertis du côté serveur vers le caractère non échappé approprié. C'est une façon de transmettre des caractères inhabituels (pipes, etc.) de manière fiable. – Tim