質問

このようなURLを持つ次のようなコードがあります...最初の* urlを使用すると、Webページは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];
役に立ちましたか?

解決

次のように、おそらく最初の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を見ると、おそらくパイプ(|)、疑問符、またはアンダースコアです)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top