Я пытаюсь использовать RestKit для вызова конечной точки, требующей базовой аутентификации.
RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[JSNCategory class]];
[mapping addAttributeMappingsFromDictionary:@{
@"id": @"catId",
@"name": @"name"
}];
NSIndexSet *statusCodes = RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful);
RKResponseDescriptor *responseDescriptor
= [RKResponseDescriptor responseDescriptorWithMapping:mapping
pathPattern:@"/api/v1/categories"
keyPath:nil
statusCodes:statusCodes];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL
URLWithString:@"https://rest.example.com"]];
RKObjectRequestOperation *operation
= [[RKObjectRequestOperation alloc] initWithRequest:request
responseDescriptors:@[responseDescriptor]];
[operation setCompletionBlockWithSuccess:
^(RKObjectRequestOperation *operation, RKMappingResult *result) {
JSNCategory *cat = [result firstObject];
NSLog(@"Mapped the category: %@", cat);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"Failed with error: %@", [error localizedDescription]);
}];
7
Brett Ryan
13 Дек 2012 в 08:41
1 ответ
Лучший ответ
Используя диспетчер объектов, это будет примерно так:
NSURL* url = [[NSURL alloc]initWithString:@"http://rest.url.com"];
RKObjectManager* objectManager = [RKObjectManager managerWithBaseURL:url];
[objectManager.HTTPClient setAuthorizationHeaderWithUsername:@"username" password:@"password"];
Затем, после установки правильного запроса / ответа, вы можете использовать диспетчер объектов для выполнения get / post / etc:
[objectManager getObjectsAtPath:endpoint parameters:parameters success:
^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
// do something
}
failure:^(RKObjectRequestOperation *operation, NSError *error) {
// do something
}
];
26
Kevin R
9 Апр 2013 в 19:03
1
Хорошо @BrettRyan, но вы не используете RKObjectManager, так как вы это сделали?
– jturolla
3 Фев 2013 в 11:13
Тот же комментарий от меня. Как objectManager используется в вызове?
– nimbusgb
7 Фев 2013 в 02:05
Что ж, новый способ использования RESTkit - использовать диспетчер объектов для этого, я добавлю немного информации в ответ.
– Kevin R
9 Апр 2013 в 18:58
Похожие вопросы
Связанные вопросы
Новые вопросы
restkit
RestKit - это платформа Objective-C для iOS, цель которой - сделать взаимодействие с веб-сервисами RESTful простым, быстрым и увлекательным. Он сочетает в себе чистый, простой HTTP-запрос / ответ API с мощной системой отображения объектов, которая сокращает объем кода, который вам нужно написать, чтобы выполнить работу.