Tôi đang sử dụng RestKit lần đầu tiên và bộ tính năng của nó trông tuyệt vời. Tôi đã đọc tài liệu nhiều lần và tôi đang cố gắng tìm cách gửi các tham số JSON vào nguồn cấp dữ liệu và ánh xạ phản hồi JSON. Từ tìm kiếm trên stackoverflow tôi tìm thấy một cách để gửi các tham số JSON thông qua GET, nhưng máy chủ của tôi chỉ nhận POST.Cách sử dụng Restkit để POST JSON và phản hồi bản đồ
Dưới đây là đoạn code tôi có cho đến nay:
RKObjectMapping *issueMapping = [RKObjectMapping mappingForClass:[CDIssue class]];
[objectMapping mapKeyPath:@"issue_id" toAttribute:@"issueId"];
[objectMapping mapKeyPath:@"title" toAttribute:@"issueTitle"];
[objectMapping mapKeyPath:@"description" toAttribute:@"issueDescription"];
RKObjectManager* manager = [RKObjectManager objectManagerWithBaseURL:@"http://restkit.org"];
RKManagedObjectStore* objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:@"News.sqlite"];
objectManager.objectStore = objectStore;
NSDictionary params = [NSDictionary dictionaryWithObjectsAndKeys: @"myUsername", @"username", @"myPassword", @"password", nil];
NSURL *someURL = [objectManager.client URLForResourcePath:@"/feed/getIssues.json" queryParams:params];
[manager loadObjectsAtResourcePath:[someURL absoluteString] objectMapping:objectMapping delegate:self]
Từ thread stackoverflow khác (http://stackoverflow.com/questions/9102262/do-a-simple-json-post-using- restkit), tôi biết cách thực hiện một yêu cầu POST đơn giản với mã sau:
RKClient *myClient = [RKClient sharedClient];
NSMutableDictionary *rpcData = [[NSMutableDictionary alloc] init ];
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
//User and password params
[params setObject:password forKey:@"password"];
[params setObject:username forKey:@"email"];
//The server ask me for this format, so I set it here:
[rpcData setObject:@"2.0" forKey:@"jsonrpc"];
[rpcData setObject:@"authenticate" forKey:@"method"];
[rpcData setObject:@"" forKey:@"id"];
[rpcData setObject:params forKey:@"params"];
//Parsing rpcData to JSON!
id<RKParser> parser = [[RKParserRegistry sharedRegistry] parserForMIMEType:RKMIMETypeJSON];
NSError *error = nil;
NSString *json = [parser stringFromObject:rpcData error:&error];
//If no error we send the post, voila!
if (!error){
[[myClient post:@"/" params:[RKRequestSerialization serializationWithData:[json dataUsingEncoding:NSUTF8StringEncoding] MIMEType:RKMIMETypeJSON] delegate:self] send];
}
Tôi hy vọng một người nào đó sẽ giúp tôi kết hợp hai đoạn mã này thành giải pháp khả thi.
Kiểm tra câu hỏi này, điều này sẽ giúp bạn. http://stackoverflow.com/questions/9102262/do-a-simple-json-post-using-restkit – clopez