gpt4 book ai didi

objective-c - RestKit 0.20.0 - 带有 JSON HTTP Body 请求的 getObjectsAtPath

转载 作者:行者123 更新时间:2023-11-28 20:26:12 25 4
gpt4 key购买 nike

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];
}];

添加一个NSDictionaryloader.params发送一组参数作为请求的 HTTP 正文。


自 RestKit 0.20.0 以来,方法 loadObjectsAtResourcePath已被以下方法取代,不再可能传递 NSDictionaryparameters ,用作 HTTP 正文(JSON 编码):

[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也有效。

它是错误、尚未实现还是我遗漏了什么?

非常感谢。

最佳答案

我真的错过了什么。

loadObjectsAtResourcePath 使用 RKRequestMethodGET 调用(当然)。所以参数会附加到 URL,而不是 HTTP 主体。

要将参数附加为 JSON HTTP 正文,您必须使用 post 方法,例如

- (void)postObject:(id)object
path:(NSString *)path
parameters:(NSDictionary *)parameters
success:(void (^)(RKObjectRequestOperation *operation, RKMappingResult *mappingResult))success
failure:(void (^)(RKObjectRequestOperation *operation, NSError *error))failure;

请原谅这个仓促的问题。我早该看过。

关于objective-c - RestKit 0.20.0 - 带有 JSON HTTP Body 请求的 getObjectsAtPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13845294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com