私は RestKit を使用しており、クエリ パラメーター (の形式の認証トークンtoken=<token>
) を使用してオブジェクトを投稿しようとしていますが、それを機能させる方法がわかりません。これが私がやっていることです...
まず、要求オブジェクト マッピングをマネージャーに追加します。
RKObjectMapping *requestMapping = [RKObjectMapping requestMapping];
[requestMapping addAttributeMappingsFromDictionary:@{
@"id" : @"id",
@"name" : @"name",
@"latitude" : @"latitude",
@"longitude" : @"longitude"
}];
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:requestMapping objectClass:[Location class] rootKeyPath:nil];
[manager addRequestDescriptor:requestDescriptor];
次に、リクエストを行います。
RKManagedObjectRequestOperation *operation = [RKObjectManager.sharedManager appropriateObjectRequestOperationWithObject:self method:RKRequestMethodPOST path:@"/api/v1/users/3/locations" parameters:@{@"token" : token}];
[operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
Location * location = (Location*)mappingResult;
self.id = Location.id;
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
ALog(@"fail!");
}];
[RKObjectManager.sharedManager enqueueObjectRequestOperation:operation];
リクエストが行われると、Location オブジェクトが JSON にシリアル化され、リクエストの本文に問題なく挿入されます。ただし、トークンはクエリ文字列に追加されるのではなく、JSON として要求本文に追加されます。
例:
request.body={"id":0,name="test","longitude":-0.1337,"latitude":51.50998,"token":"Z3JlZ2c6MTM2MDU2OTk2MDY2OTpMajkxd01acWxjcGg1dEpFVy9IaEcwNTcyMWJkSEpnTFRTQTI2eXNlN29VOVRTc1UwV1lEU0E9PQ=="}
どんな助けでも大歓迎です!