我正在试验 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/