3

我有类似下面的代码和这样的 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];
4

1 回答 1

3

您可能需要对第一个 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";
NSString *escapedURL = [url stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSString *webpage = [NSString stringWithContentsOfURL:[NSURL URLWithString:escapedURL]];

如果 URL 包含未正确转义的字符(查看您的 URL,它可能是竖线 (|)、问号或下划线),则 URL 的构造及其获取将失败。

于 2009-06-25T06:01:39.317 回答