stringWithContentsOfURL无法使用某些字符串

时间:2009-06-25 05:51:58

标签: iphone nsstring

我的代码类似于以下类似的URL ...如果我使用第一个* url,网页将返回null。如果我将此URL放入像bit.ly这样的URL缩短系统中,它确实有效,并将页面HTML作为字符串返回。我只能认为我的第一个* url中有无效字符?有什么想法吗?

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

1 个答案:

答案 0 :(得分:3)

您可能需要在第一个网址中转义某些字符,如下所示:

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

如果URL包含未正确转义的字符(查看您的网址,可能是管道(|),问号或下划线),则构建网址及其提取将失败。