Hi, when I try update object in api I receive "Nonce check failed", but when I use getObjectsAtPath I get correct data.
NSString *name = @"john";
C_Manager *m = [C_Manager new];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:[m getObjectMapping] method:RKRequestMethodGET pathPattern:nil keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
RKObjectManager *manager = [RKObjectManager sharedManager];
[manager addResponseDescriptor:responseDescriptor];
[manager getObjectsAtPath:[NSString stringWithFormat:@"%@managers/%@/", url_path, name] parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
C_Manager *mm = mappingResult.array.firstObject;
DDLogInfo(@"---------------- response result -----------------");
DDLogInfo(@"response: %@", mm.username);
mm.password = @"new_password";
AFOAuth1Client *oauthClient = [[AFOAuth1Client alloc] initWithBaseURL:[NSURL URLWithString:oauth_url_access] key:oauth_consumer_key secret:oauth_consumer_secret];
[oauthClient authorizeUsingOAuthWithRequestTokenPath:@"/oauth/request_token"
userAuthorizationPath:@"/oauth/authorize"
callbackURL:[NSURL URLWithString:@"mycallback-ios://success"]
accessTokenPath:@"/oauth/access_token"
accessMethod:@"PATCH"
scope:nil
success:^(AFOAuth1Token *accessToken, id responseObject) {
DDLogInfo(@"%@ Success: %@", NSStringFromSelector(_cmd), accessToken);
// [oauthClient setAccessToken: accessToken];
[[RKObjectManager sharedManager] setHTTPClient:oauthClient];
// PATCH object
RKObjectMapping *requestMapping = [RKObjectMapping requestMapping];
[requestMapping addAttributeMappingsFromArray:@[@"password"]];
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:requestMapping objectClass:[C_Manager class] rootKeyPath:nil method:RKRequestMethodPATCH];
[[RKObjectManager sharedManager] addRequestDescriptor:requestDescriptor];
[[RKObjectManager sharedManager] patchObject:mm path:@"/api/v1/managers/john/" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
DDLogWarn(@"!+!+!+!+!+------ %@", [mappingResult.array.firstObject valueForKey:@"email"]);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
DDLogError(@"%@ |::| Error: %@", NSStringFromSelector(_cmd), error);
}];
} failure:^(NSError *error) {
DDLogError(@"%@ Errror: %@", NSStringFromSelector(_cmd), error);
}];
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
DDLogError(@"%@ |::| Error: %@", NSStringFromSelector(_cmd), error);
}];
request.headers={
"Accept-Language" = en;q=0.9, fr;q=0.8, de;q=0.7, ja;q=0.6, nl;q=0.5";
Authorization = "..."
"Content-Type" = "application/x-www-form-urlencoded; charset=utf-8";
"User-Agent" = "(iPhone; iOS 7.1.2; Scale/2.00)";
}
request.body=password=new_password
2014-08-07 12:27:44.054 [17280:470b] E restkit.network:RKObjectRequestOperation.m:576 Object request failed: Underlying HTTP request operation failed with error: Error Domain=org.restkit.RestKit.ErrorDomain Code=-1011 "Expected status code in (200-299), got 401" UserInfo=0x157c2820 {NSLocalizedRecoverySuggestion={"detail": "Nonce check failed"}, AFNetworkingOperatnFailingURLRequestErrorKey=<NSMutableURLRequest: 0x1579bf60> { URL: https://api.url.be/api/v1/managers/john/ }, NSErrorFailingURLKey=https://api.url.be/api/v1/managers/john/, NSLocalizedDescription=Expected status code in (200-299), got 401, AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0x157d3820> { URL: https://api.url.be/api/v1/managers/john/ } { status code: 401, headers {
Allow = "GET, PUT, PATCH, DELETE, HEAD, OPTIONS";
Connection = "keep-alive";
"Content-Language" = pl;
"Content-Type" = "application/json";
Date = "Thu, 07 Aug 2014 10:27:44 GMT";
"Keep-Alive" = "timeout=20";
"Transfer-Encoding" = Identity;
Vary = "Accept, Accept-Language, Cookie";
"Www-Authenticate" = "OAuth realm=\"api\"";
} }}
2014-08-07 12:27:44.061 [17280:470b] E restkit.network:RKObjectRequestOperation.m:238 PATCH 'https://api.url.be/api/v1/managers/john/' (401 Unauthorized / 0 objects) [request=0.4761s mapping=0.0000s total=0.4939s]:
error=Error Domain=org.restkit.RestKit.ErrorDomain Code=-1011 "Expected status code in (200-299), got 401" UserInfo=0x157c2820 {NSLocalizedRecoverySuggestion={"detail": "Nonce check failed"}, AFNetworkingOperationFailingURLRequestErrorKey=<NSMutableURLRequest: 0x1579bf60> { URL: https://api.url.be/api/v1/managers/john/ }, NSErrorFailingURLKey=https://api.url.be/api/v1/managers/john/, NSLocalizedDescription=Expected status code in (200-299), got 401, AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0x157d3820> { URL: https://api.url.be/api/v1/managers/john/ } { status code: 401, headers {
Allow = "GET, PUT, PATCH, DELETE, HEAD, OPTIONS";
Connection = "keep-alive";
"Content-Language" = pl;
"Content-Type" = "application/json";
Date = "Thu, 07 Aug 2014 10:27:44 GMT";
"Keep-Alive" = "timeout=20";
"Transfer-Encoding" = Identity;
Vary = "Accept, Accept-Language, Cookie";
"Www-Authenticate" = "OAuth realm=\"api\"";
} }}
response.body={"detail": "Nonce check failed"}
12:27:38:374 [17280:60b] patchTest Success: <AFOAuth1Token: 0x157a0c80>