无法从具有多个标题的MediaWiki API URL打开NSURL

迈克尔·斯诺登

在iPhone应用程序中使用MediaWiki API

我正在尝试加载此链接(维基百科上有关“蜘蛛”和“猫”的所有图片的JSON格式):

http://en.wikipedia.org/w/api.php?action=query&prop=images&format=json&imlimit=200&titles=Spider|Cat

我这样做的代码是这样的:

NSString *urlPath = @"http://en.wikipedia.org/w/api.php?action=query&prop=images&format=json&imlimit=200&titles=Spider|Cat";
NSURL *URL = [NSURL URLWithString:urlPath];    // nil

我可以在计算机上正常访问该链接,但是该链接拒绝加载此代码。但是,它可以与其他链接(例如“蜘蛛”的图片)一起使用:

http://en.wikipedia.org/w/api.php?action=query&prop=images&format=json&imlimit=200&titles=Spider

NSString *urlPath = @"http://en.wikipedia.org/w/api.php?action=query&prop=images&format=json&imlimit=200&titles=Spider";
NSURL *URL = [NSURL URLWithString:urlPath];    // works just fine

这是与|字符有关的问题NSString吗?我不明白为什么这适用于第二个链接,但不适用于第一个链接。

迈克尔·斯诺登

我意识到问题在于垂直管道符号|被添加到中NSURL,这对我来说是没有意义的,但是解决方案是将其替换%7C为“我从|字符的URL编码值”,这是我从此答案中学到的

因此,这可行:

NSString *urlPath = @"http://en.wikipedia.org/w/api.php?action=query&prop=images&format=json&imlimit=200&titles=Spider%7CCat";
NSURL *URL = [NSURL URLWithString:urlPath];    // nil

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档