如何在使用RestKit和RKObjectManager时添加一些默认参数?

我正在使用RestKit,RKObjectManager和服务器端devise进行身份validation。 我需要发送我的身份validation令牌每个请求。 有没有一种方法可以轻松地为所有请求添加它?

目前,对于GET,我正在做以下工作:

NSString *path = [NSString stringWithFormat:@"/%@/%i", [self pluralizedName], identifier]; path = [path stringByAppendingQueryParameters:[self appendAuthenticationToken:params]]; [[RKObjectManager sharedManager] loadObjectsAtResourcePath:path delegate:delegate]; 

这很好。 但是,对于PUT,我尝试了以下方法:

 [[RKObjectManager sharedManager] putObject:resource usingBlock:^(RKObjectLoader *loader) { loader.delegate = delegate; loader.params = [RKParams paramsWithDictionary:[self appendAuthenticationToken:params]]; }]; 

这正确地发送了我的身份validation令牌,但服务器没有收到我正在尝试更新的资源。 有谁知道这样做的正确方法?

这是我第一次看到一个身份validation令牌追加到这样的path。 你不能把它添加到标题? 我有一种感觉,那就是更为标准的做法。

如果你这样做,你可以在你的RKObjectManager提供的客户端上使用[RKClient setValue:forHTTPHeaderField:]。

在RestKit.2中,你可以解决这个问题:

  [[[RKObjectManager sharedManager] HTTPClient] setAuthorizationHeaderWithToken:self.user.token];