Pregunta

Tengo un código similar al siguiente con una URL como esta ... Si uso la primera * url, la página web devolverá nulo. Si pongo esta URL en un sistema de acortamiento de URL como bit.ly, funciona y devuelve las páginas HTML como una cadena. ¿Solo puedo pensar que tengo caracteres no válidos en mi primera * url? ¿Alguna idea?

NSString *url =@"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];
¿Fue útil?

Solución

Probablemente necesite escapar de algunos caracteres en la primera URL, de la siguiente manera:

NSString *url =@"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 construcción de la URL y su recuperación fallará si la URL contiene caracteres que no se escapan correctamente (mirando su URL, es probable que sea la barra (|), el signo de interrogación o el guión bajo).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top