2014-02-17 33 views
0

我正在使用RestKit訪問我不控制的Web服務。在一個操作中,「ageGroup」參數是必需的,以在下面所示的形式:iOS:阻止來自URL編碼逗號的Restkit

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編碼這些逗號?有沒有其他的解決方法,我沒有想到這一點?

回答

2

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

kAFCharactersToBeEscapedInQueryString中刪除逗號。

+0

感謝您的回覆!你能給我更多關於在哪裏可以找到這個功能的信息嗎?我在RestKit項目中看到了AFNetworking文件夾,但我沒有看到您提到的功能的任何參考。 –

+0

等一下,我找到了。它在AFHTTPClient.m –

+0

太棒了!我會在那裏設置一個斷點並逐步完成,以確保它能給你想要的結果。 –