【问题标题】:How do I set basic authentication with RestKit 0.20.0?如何使用 RestKit 0.20.0 设置基本身份验证?
【发布时间】:2012-12-13 04:41:30
【问题描述】:

我正在尝试使用 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]);
}];

【问题讨论】:

    标签: restkit


    【解决方案1】:

    使用 objectmanager 这将是这样的:

    NSURL* url = [[NSURL alloc]initWithString:@"http://rest.url.com"];
    RKObjectManager* objectManager = [RKObjectManager managerWithBaseURL:url];
    
    [objectManager.HTTPClient setAuthorizationHeaderWithUsername:@"username" password:@"password"];
    

    然后,设置正确的请求/响应后,您可以使用 objectmanager 进行 get/post/etc:

    [objectManager getObjectsAtPath:endpoint parameters:parameters success:
         ^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
             // do something
         }  
         failure:^(RKObjectRequestOperation *operation, NSError *error) {
             // do something
         }
    ];
    

    【讨论】:

    • 好的@BrettRyan,但你没有使用RKObjectManager,你是怎么做到的?
    • 我的相同评论。调用中如何使用 objectManager?
    • 嗯,使用 RESTkit 的新方法是使用 objectmanager 来完成此操作,我会在答案中添加一些信息
    猜你喜欢
    • 2011-04-18
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    相关资源
    最近更新 更多