gpt4 book ai didi

ios - RestKit 0.2,多种方式发起GET、POST、PUT请求

转载 作者:技术小花猫 更新时间:2023-10-29 10:52:12 25 4
gpt4 key购买 nike

我对使用 restkit 的方式有点困惑,似乎有多种方法可以做同样的事情,之前我满足于只是摆弄它直到它起作用,但现在他已经改变了框架和在 0.20.x 中的用法,我花了很多时间转换我的代码,现在花更多的时间试图让它像以前一样工作。我已经搜索了一些例子,比如人们声称为他们工作的例子,不要为我做太多,所以某处一定有区别,所以也许有人可以在尝试时告诉我下面的区别至少获取此数据,例如 1 和 2(失败但这是关于 restkit github 的问题)

response.body={
"player": [
{
"_id": "50585c86ded998e77a000002"
}
]
}

1.

[[RKObjectManager sharedManager].router.routeSet addRoute:[RKRoute routeWithClass:[Player class] pathPattern:@"player/fbid/:fID" method:RKRequestMethodGET]];

为了让你的播放器,像这样:

Player *player = [Player new];
player.playerID = 2;
[[RKObjectManager sharedManager] getObject:player path:nil parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *result)
{
// Request
} failure:nil];

2.

像这样使用响应描述符。

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor  responseDescriptorWithMapping:playerWtfMappingIn pathPattern:nil keyPath:@"player" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];

[[RKObjectManager sharedManager] addResponseDescriptor:responseDescriptor];

[tempPlayer setFbID:[result objectForKey:@"id"]];

[objectManager getObject:tempPlayer path:nil parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)
{

}
failure:nil];

3.

或者事实上 blakes 在 RestKit wiki 上有自己的例子

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:articleMapping pathPattern:nil keyPath:@"articles" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];

NSURL URL = [NSURL URLWithString:@"http://restkit.org/articles"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
RKObjectRequestOperation *objectRequestOperation = [[RKObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[ responseDescriptor ]];
[objectRequestOperation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
RKLogInfo(@"Load collection of Articles: %@", objects);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
RKLogError(@"Operation failed with error: %@", error);
}];

[objectRequestOperation start];

而且我确信还有很多其他方法,我怀疑是否有人可以确认您应该设置路径的方式以及是否使用一种方法而不是另一种方法很大程度上取决于您尝试映射的数据集它的格式。然后,其中一些看起来也像是做完全相同事情的不同方式?谢谢

最佳答案

两种方式都是正确的。事实上,第一个更好,因为它将所有配置集中在 RKObjectManager 中。对于基于 RestKit 的项目,我强烈建议您使用 ObjectManager 方式:)

您甚至可以更进一步,开始使用路由来保持您的代码更简洁,请参阅有关该部分的 wiki :)

希望对你有帮助

关于ios - RestKit 0.2,多种方式发起GET、POST、PUT请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13927480/

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