2012-03-13 19 views
1

我正在试用restkit,并且似乎是路由器类中的一个问题。我的API默认服务器为每个对象resource_uri,这意味着这样的事情:避免在Restkit路由器上进行uri编码

/path/to/resource/id/ 

所以,当我要更新的对象(在这种情况下用户),我想这样做,就像这样:

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

因为用户对象具有全路径作为它的实例变量中的一个。也有他自己的ID,但我认为这种方式更简单。

的问题是,当我做调试:resource_uri映射与URI编码,所以我得到喜欢的东西丑:

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

,这使得我的请求失败,原因是该网址无法正确理解。

我解决了这个问题,使用用户ID来代替,设置路由器,如:

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

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

回答

0

你可以通过escapeRoutedPath:NO,如:

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