【问题标题】:iOS: Prevent Restkit from URL encoding commasiOS:防止 Restkit 使用 URL 编码逗号
【发布时间】:2014-02-17 20:21:45
【问题描述】:

我正在使用 RestKit 访问我无法控制的 Web 服务。在一个操作中,“ageGroup”参数必须采用如下所示的形式:

ag=Babies,+Toddlers,+Preschoolers,+Kids ages 6-11

使用上述方法从浏览器调用 Web 服务可以正常工作。我还注意到我的浏览器会自动对空格进行编码,但不会对逗号或加号进行编码。

RestKit 将这部分 URL 编码为:

ag=Babies%2C%2BToddlers%2C%2BPreschoolers%2C%2BKids%20ages%206-11

尝试在 URL 中使用它(即使在浏览器中)不起作用。我已将问题缩小到逗号;无论出于何种原因,Web 服务都没有正确解码逗号转义序列。同样,我无法控制 Web 服务,因此对此我无能为力。

如何防止 RestKit 编码这些逗号?有没有其他我没有想到的解决方法?

【问题讨论】:

    标签: ios objective-c web-services cocoa-touch restkit


    【解决方案1】:

    RestKit 使用 AFNetworking。我相信你所要做的就是修改AFPercentEscapedQueryStringKeyFromStringWithEncoding函数。

    删除kAFCharactersToBeEscapedInQueryString中的逗号。

    【讨论】:

    • 感谢您的回复!你能告诉我更多关于在哪里可以找到这个功能的信息吗?我在 RestKit 项目中看到了 AFNetworking 文件夹,但我没有看到对您提到的函数的任何引用。
    • 等等,我找到了。它在 AFHTTPClient.m
    • 太棒了!我会在那里设置一个断点并逐步检查以确保它为您提供所需的结果。
    猜你喜欢
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多