gpt4 book ai didi

ios - Restkit 发送 Get 请求而不是 Post

转载 作者:行者123 更新时间:2023-11-29 13:41:30 24 4
gpt4 key购买 nike

我刚开始使用 Restkit 并尝试发送常规 POST 请求“serverUrl/account/authenticate.xml?OPTIONS”以获取 XML 格式的响应。这是我用来调用 URL 的代码:

 -(void) function{

// OBJECT MANAGER
RKObjectManager* manager = [RKObjectManager objectManagerWithBaseURL:serverUrl];
[manager.router routeClass:[CBUser class] toResourcePath:@"/account/authenticate" forMethod:RKRequestMethodPOST];


// OBJECT MAPPING
RKObjectMapping* mapping = [RKObjectMapping mappingForClass:[CBUser class]];
mapping = [manager.mappingProvider objectMappingForKeyPath:@"user"];
[mapping mapKeyPath:@"id" toAttribute:@"userId"];

[manager loadObjectsAtResourcePath:str objectMapping:mapping delegate:self];
}


// DELEGATE
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {
CBUser* user = [objects objectAtIndex:0];
NSLog(@"Loaded Contact ID #%@ -> Firstname: %@, Lastname: %@", user.userId, user.firstname, user.lastname);
}

- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error {
NSLog(@"Encountered an error: %@", error);
}

查看服务器日志,它似乎收到了 GET 请求而不是 POST,即使我使用的是“RKRequestMethodPOST”选项。

这是我的错误日志:

Started GET "/account/authenticate.xml?commit=Login&authenticity_token=iPhone&user%5Bpassword=XXXXX&user%5Bemail=XXXXXXX%5D&user%5Bdevice_token=XXXXXXX" for 192.168.106.30 at 2012-01-25 19:20:03 -0800

AbstractController::ActionNotFound (The action 'show' could not be found for AccountController):


Rendered /Users/Guillaume/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.0.9/lib/action_dispatch/middleware/templates/rescues/unknown_action.erb within rescues/layout (1.2ms)

我错过了什么?

最佳答案

希望我的应用程序的这段代码对您有所帮助。你设置你的映射,在你的委托(delegate)中说。注意“forMethod”

    RKObjectRouter *router;

RKObjectMapping* createAccountSerializationMapping = [RKObjectMapping mappingForClass:[Cr eateAccount class]];
[createAccountSerializationMapping mapAttributes:@"email", @"pwd", @"uname", nil];

[[RKObjectManager sharedManager].mappingProvider setSerializationMapping:createAccountSerializationMapping forClass:[CreateAccount class]];

router = [RKObjectRouter new] ;
[router routeClass:[CreateAccount class] toResourcePath:@"/registration/rest/users/create_account" forMethod:RKRequestMethodPOST];

[RKObjectManager sharedManager].router = router;

然后,当你想发布一个对象时

    [[RKObjectManager sharedManager] postObject:user delegate:self];

关于ios - Restkit 发送 Get 请求而不是 Post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9013747/

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