iphone - RestKit - 向所有请求附加参数

标签 iphone objective-c restkit

我有一个使用 RestKit 的 iOS 应用程序,以便与 RESTful Rails 服务器进行通信。服务器使用基本 session token 对用户进行身份验证。我想将此 token 附加到使用 RKObjectManager 方法发送的每个请求。

我尝试创建 NSManagedObject 的类别重载以便使用以下方法:

- (void)willSendWithObjectLoader:(RKObjectLoader *)objectLoader

这工作正常,但是我看不到附加到对象加载器的参数的方法。我什至已经重新序列化该对象,但如果不使用转义字符发送它,就无法做到这一点。例如,以下代码将以 JSON 序列化形式提供对象

RKObjectMapping *serializationMapping = [[[RKObjectManager sharedManager] mappingProvider] serializationMappingForClass:[self class]];
RKObjectSerializer *ser = [RKObjectSerializer serializerWithObject:self mapping:serializationMapping];
NSObject<RKRequestSerializable> *obj = [ser serializationForMIMEType:RKMIMETypeJSON error:nil];

但是返回的对象打算立即用作参数,因此以下代码不起作用

[params setValue:[LCSingletonLoggedInUser sharedLoggedInUser].sessionToken forParam:@"token"];
[params setData:obj.HTTPBody forParam:@"data"];

我还尝试了 setObject 和 setData 以及 obj.HTTPBody 的各种组合,以及立即尝试 obj。

实际上,以任何方式将 obj 附加到 params 总是会导致添加服务器无法处理的转义字符。设置 params = obj 将为服务器提供正确的值,但不包含 token 。

最佳答案

将其添加到 queryParams 怎么样?

NSString *resourcePath = [@"/products" stringByAppendingQueryParameters:_queryParams];

其中 queryParams 是一个 NSMutableDictionary,您可以在其中添加 token 。

关于iphone - RestKit - 向所有请求附加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11505172/

相关文章:

html - 如何将 iframe 视频缩放到更小的尺寸以适应 iOS 中的 UIWebView 框架?

ios - 检查UITextField是否具有大于0的数值

ios - RestKit - 通过嵌套外键的核心数据多对多关系

iphone - 如何检测图像是否被触摸

iphone - 设计一个稍后与移动应用程序交互的网站

iphone - 在不更改任何代码的情况下将 iPhone 应用程序提交为通用是否有效?

iOS Restkit 需要调用NewBodyStream

iphone - 关闭多个模态视图

objective-c - 在 Cocos2d 中删除 Sprite 导致崩溃

iOS RestKit - 映射结果,只有一个属性