我正在使用RestKit 0.23.3。
对于特定路径模式(例如download_data/:dataId
):
image/png
,text/plain
,text/xml
,...甚至application/json
),这可能(以及如何)使用RestKit?
感谢。
答案 0 :(得分:1)
使用新的restkit 0.20.3,您可以执行您的其余网络服务,如:
[[AppDelegate appDelegate].rkomForProbeList getObjectsAtPath:[NSString stringWithFormat:kResource_Probe,[[NSUserDefaults standardUserDefaults] valueForKey:kNS_DF_AccessRef]] parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
NSLog(@"%@",operation.HTTPRequestOperation.responseString);
// if raw data
NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:[operation.HTTPRequestOperation.responseString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:NULL];
// if mapped
arrayForProbe = [[NSMutableArray alloc] initWithArray:mappingResult.array];
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"%@",operation.HTTPRequestOperation.responseString);
NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:[,operation.HTTPRequestOperation.responseString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:NULL];
NSLog(@"%@",operation.HTTPRequestOperation.response.statusCode);
NSLog(@"%@",error.description);
[self hideViewContentAsProbesNotAvailable];
}];
通过映射,您将直接从mappingarray获取对象。对于解析原始数据,您已从响应字符串中获取json对象。
rkomForProbeList是您的RKObjectManager实例。 kResource_Probe是资源路径。如果基本网址为http://www.hi.com/且您的其他API需要http://www.hi.com/login,那么"登录"将是你的资源路径。
答案 1 :(得分:0)
我不熟悉RESTKit,但无论如何它可能对你有所帮助
我建议你使用NSURLSession
这样的低级请求,因为RESTKit添加了很多抽象,这对于这个任务来说是不必要的。
[[[NSURLSession sharedSession] dataTaskWithURL:[NSURL URLWithString:@"http://yourSite.com"]
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
if ([response isKindOfClass:[NSHTTPURLResponse class]]) {
NSInteger statusCode = [(NSHTTPURLResponse *)response statusCode];
if (statusCode >= 200 && statusCode < 300) {
// that's OK
} else {
// something wrong
}
}
}] resume];