【问题标题】:Can't open NSURL from MediaWiki API URL with multiple titles无法从具有多个标题的 MediaWiki API URL 打开 NSURL
【发布时间】:2014-08-05 02:56:24
【问题描述】:

我在我的 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 中的| 字符的问题吗?我不明白为什么这对第二个链接有效,但对第一个链接无效。

【问题讨论】:

    标签: php ios json nsurl mediawiki-api


    【解决方案1】:

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

    所以,这行得通:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      相关资源
      最近更新 更多