【发布时间】:2012-05-21 13:15:18
【问题描述】:
我必须调用第三方 web 服务,它期望并且只接受其参数字符串中的非法字符(根据 RFC),如下所示。
http://example.com?param1={foo=bar}
在这个例子中,大括号是非法字符,应该被编码,但是如果这些字符已经被编码,这个 web 服务将不接受参数。
NSURL 正确地不允许我使用 URLWithString 方法创建 NSURL 对象,使用示例中的字符串返回 nil。
Web 服务由大型企业实体提供,因此更改它需要向他们提交错误报告,这可能会或可能不会很快采取行动,如果有的话,尤其是考虑到 API 是按原样工作的。
我的问题是这个问题有哪些可能的解决方案,我可以在不更改 Web 服务的情况下实施。
当前的想法(缺点) 使用 CFStream 制作自定义 HTTP 请求(工作量非常大) 使用可以代表我的应用程序发送请求的基于 Web 的代理(额外的外部依赖项)
谢谢
【问题讨论】:
-
只是出于好奇,网络服务是否接受
http://example.com?param1=%7Bfoo=bar%7D。
标签: ios url nsurlconnection nsurl afnetworking