3

我正在尝试使用 RestKit 发送一个简单的请求,我只对获取 JSON 感兴趣,

这是我的代码:

NSURL *endpoint = [NSURL URLWithString:@"https://www.ez-point.com/api/v1/"];
    RKObjectManager* objectManager = [RKObjectManager managerWithBaseURL:endpoint];
    [objectManager.HTTPClient setAuthorizationHeaderWithToken:@"xxxxxxxxxxx"];
    [objectManager getObjectsAtPath:@"ezpoints" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
        NSLog(@"It works");
    } failure:^(RKObjectRequestOperation *operation, NSError *error) {
        NSLog(@"Request failed");
    }];

我得到的错误是:

    Restkit.network:RKObjectRequestOperation.m:243 GET 
    'https://www.ez-point.com/api/v1/ezpoints' (200 OK / 0 objects) 
    [request=0.0000s mapping=0.0000s total=1.6094s]: Error 
Domain=org.restkit.RestKit.ErrorDomain Code=1001 "No response descriptors match the response loaded." UserInfo=0x160df470 {NSErrorFailingURLStringKey=https://www.ez-point.com/api/v1/ezpoints, 
    NSLocalizedFailureReason=A 200 response was loaded from the URL 'https://www.ez-point.com/api/v1/ezpoints', which failed to match all (0) response 
    descriptors:, NSLocalizedDescription=No response descriptors match the response loaded., keyPath=null, NSErrorFailingURLKey=https://www.ez-point.com/api/v1/ezpoints, NSUnderlyingError=0x160a9730 "No mappable object representations were found at the key paths searched."}
        2013-10-28 15:03:40.899 EZ-POINT[1651:c07] Request failed

关于这个问题的任何想法?

4

2 回答 2

5

正如错误所说,RestKit 找不到加载响应的任何响应描述符。那是因为你没有设置任何东西。

如果您只想加载 JSON 而不映射它,RestKit 可能有点过分,您应该将赌注押在RestKit也使用的 AFNetworking 上:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];
于 2013-10-28T11:11:23.310 回答
3

如果您的兴趣是:

仅在获取 JSON

那么你不应该使用 RestKit - 这不是它的用途。相反,使用 AFNetworking(它包含在 RestKit 中,因此您可以同时使用两者)。

使用正确的工具完成工作...

于 2013-10-28T11:13:52.090 回答