ios - 避免在 Restkit 路由器上进行 uri 编码

标签 ios restkit router url-encoding

我正在试验 restkit,似乎是路由器类中的一个问题。默认情况下,我的 API 服务器有每个对象的 resource_uri,这意味着像这样:

/path/to/resource/id/

因此,当我想更新对象(在本例中为用户)时,我想这样做:

[router routeClass:[user class] toResourcePath:@":resource_uri" forMethod:RKRequestMethodPUT];

因为用户对象将整个路径作为其实例变量之一。也有自己的id,不过我觉得这种方式比较简单。

问题是,当我进行调试时,:resource_uri 被映射到 uri 编码,所以我得到一些丑陋的东西,比如:

%2Fpath%2Fto%2Fresource%2Fid%2F

这使得我的请求失败,因为 url 没有被正确理解。

我使用用户 ID 解决了这个问题,将路由器设置为:

[router routeClass:[user class] toResourcePath:@"/api/resources/userprofile/:user_id/" forMethod:RKRequestMethodPUT];

但是我想知道是否有办法克服uri编码。

最佳答案

你可以传递 escapeRoutedPath:NO 这样的:

[router routeClass:[user class] toResourcePath:@":resource_uri" forMethod:RKRequestMethodPUT escapeRoutedPath:NO];

关于ios - 避免在 Restkit 路由器上进行 uri 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9688113/

相关文章:

ios - 如何将 NSData 值转换为 UIImage

iphone - RestKit GET 请求仅有效一次

ember.js - 如何在 Ember v2 路由器 API 中打开控制台日志记录?

node.js - 在带路由的 Express 中使用 RE 和命名时的“0”项

javascript - 使用静态 HTML 文件的主干路由

带有半径的 Objective-c 搜索位置

ios - 使用 "content-available": 1 payload not always calling application:didReceiveRemoteNotification:fetchCompletionHandler: 推送通知

iphone - UINavigationController 中的 UIWebView 不滚动

objective-c - 使用 RestKit 将 bool 属性从 JSON 映射到 NSManagedObject

ios - 在 Restkit 中映射 JSON 很困难