将NSURLConnection与包含非法字符的URL一起使用

时间:2012-05-14 02:07:43

标签: ios url nsurlconnection nsurl afnetworking

我必须调用第三方网络服务,该网络服务期望并且只接受其中的非法字符(根据RFC),如下所示。

http://example.com?param1={foo=bar}

在此示例中,大括号是非法字符,应进行编码,但如果已对这些字符进行编码,则此Web服务将不接受参数。

NSURL正确地不允许我使用NSURL方法创建URLWithString对象,使用类似示例的字符串返回nil。

Web服务由大型公司实体提供,因此更改它需要向他们提交错误报告,如果有的话,可能会或可能不会很快执行,特别是考虑到API按原样运行。

我的问题是,我可以实现这个问题的一些可能的解决方案,而无需更改Web服务。

目前的想法(缺点) 使用CFStream来制作自定义HTTP请求(非常大量的工作) 使用可以代表我的应用程序发送请求的基于Web的代理(附加外部依赖)

由于

1 个答案:

答案 0 :(得分:2)

你要做的事是不可能的。您需要对这些字符进行URL编码,然后服务器将自动解码它们。

如果你能以某种方式破解NSURL,整个过程中仍会有很多部分会阻塞格式错误的网址。