在我使用的 RestKit版本 0.10.x
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/special/path" usingBlock:^(RKObjectLoader *loader) {
loader.objectMapping = aMapping;
loader.delegate = _delegate;
loader.method = RKRequestMethodPOST;
loader.userData = [MobileGatewayReauthentication class];
loader.params = [anDictionary toJsonRKParam];
}];
添加一个NSDictionary
toloader.params
以将参数集合作为请求的 HTTP 正文发送。
从 RestKit 0.20.0 开始,该方法loadObjectsAtResourcePath
已被以下方法替换,其中不再可能传递用作 HTTP 正文(JSON 编码)的NSDictionary
in :parameters
[RKObjectManager.sharedManager getObjectsAtPath:path parameters:params success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)
{
NSLog(@"success");
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"failure");
}];
当使用[[RKObjectManager sharedManager].HTTPClient
(AFNetworking)时,它在设置时就像一个魅力:
[[RKObjectManager sharedManager].HTTPClient setParameterEncoding:AFJSONParameterEncoding];
[[RKObjectManager sharedManager].HTTPClient postPath:path parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Response: %@", operation.responseString);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@",error.localizedDescription);
}];
但我需要更高级别的对象映射器。
[[RKObjectManager sharedManager].HTTPClient setParameterEncoding:AFJSONParameterEncoding];
对 [RKObjectManager sharedManager] 没有影响,但是
[[RKObjectManager sharedManager].HTTPClient setDefaultHeader:@"aHeader" value:@"aValue"];
拥有。所以我认为这setParameterEncoding
也有效。
这是一个错误,它还没有实现,还是我错过了什么?
非常感谢。