gpt4 book ai didi

objective-c - 是|管道字符制作 URLWithString : fail?

转载 作者:搜寻专家 更新时间:2023-10-30 20:00:38 25 4
gpt4 key购买 nike

我有这个非常简单的代码:

PO(URLString);
url = [NSURL URLWithString:URLString];
PO(url);
NSData * data=[NSData dataWithContentsOfURL:url];

(PO() 是我用来打印内容的宏。)

它大部分时间都有效。这是输出:

2012-10-08 11:39:28.187 BadgerNew[2475:5007] <0x1f5321f0
BGCRBusinessForDisplay.m:(113)> URLString:
http://id.openrice.com/UserPhoto/photo/0/U/0005Z29E131A230CBA4A42n.jpg

2012-10-08 11:39:28.193 BadgerNew[2475:5007] <0x1f5321f0
BGCRBusinessForDisplay.m:(115)> url:
http://id.openrice.com/UserPhoto/photo/0/U/0005Z29E131A230CBA4A42n.jpg

2012-10-08 11:39:30.191 BadgerNew[2475:6b03] <0x1f529f00
BGCRBusinessForDisplay.m:(113)> URLString:
http://maps.googleapis.com/maps/api/staticmap?&zoom=16&size=160x160&maptype=roadmap&sensor=true&center=-6.187900,106.775429&markers=size:small|color:blue|-6.187900,106.775429

2012-10-08 11:39:30.196 BadgerNew[2475:6b03] <0x1f529f00
BGCRBusinessForDisplay.m:(115)> url: (null)

如您所见,它适用于 http://id.openrice.com/UserPhoto/photo/0/U/0005Z29E131A230CBA4A42n.jpg它在 http://maps.googleapis.com/maps/api/staticmap?&zoom=16&size=160x160&maptype=roadmap&sensor=true&center=-6.187900,106.775429&markers=size:small|color:blue|-6.187900,106.775429 上失败了

也许问题是 |在谷歌网址中。那我该怎么办呢?

最佳答案

你是对的,|(“管道”)就是问题所在。

Apple docs for URLWithString:说相关的外部文档是 RFC 23961738 .根据他们的说法,| 是一个“不安全”字符,必须始终在 URL 中进行编码。它的编码是%7C

您可以手动更正字符串中的管道(如果它是硬编码字符串),但更好的解决方案是使用 -[NSString stringByAddingPercentEscapesUsingEncoding:] 替换它们和任何其他有问题的字符.

关于objective-c - 是|管道字符制作 URLWithString : fail?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12775475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com