从iOS创建融合表

从iOS创建融合表,ios,objective-c,google-fusion-tables,Ios,Objective C,Google Fusion Tables,我在使用Google fusion表的ios应用程序上工作。年,我得到了建议并取得了进展,但仍在努力创建融合表。我的代码: NSString *url = @"https://www.googleapis.com/fusiontables/v1/tables"; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:myTableDict options:NSJSONWritingPrettyPrinted error:nil];

我在使用Google fusion表的ios应用程序上工作。年,我得到了建议并取得了进展,但仍在努力创建融合表。我的代码:

NSString *url = @"https://www.googleapis.com/fusiontables/v1/tables";

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:myTableDict options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonDataString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSData *postData = [jsonDataString dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
GTMHTTPFetcher *fetcher = [GTMHTTPFetcher fetcherWithRequest:request];
[fetcher setAuthorizer:self.auth];
[fetcher setPostData:postData];
void(^createHandler)(NSData *data, NSError *error) = ^(NSData *data, NSError *error){
    if (error) {
        NSLog(@"error creating table %@", [error localizedDescription]);
    }
};
[fetcher beginFetchWithCompletionHandler:createHandler];

但我得到了一个错误:“操作无法完成。(com.google.HTTPStatus error 400)。”。我做错了什么?

看起来进步不错。在代码中,您似乎缺少设置http头内容类型,应为:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[request setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
GTMHTTPFetcher *fetcher = [GTMHTTPFetcher fetcherWithRequest:request];
此外,在执行
gtmhtpfetcher
错误处理时,您可能会使用以下方法获得更多信息:

NSData *data = [[error userInfo] valueForKey:@"data"];
NSString *errorDataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

看来进展不错。在代码中,您似乎缺少设置http头内容类型,应为:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[request setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
GTMHTTPFetcher *fetcher = [GTMHTTPFetcher fetcherWithRequest:request];
此外,在执行
gtmhtpfetcher
错误处理时,您可能会使用以下方法获得更多信息:

NSData *data = [[error userInfo] valueForKey:@"data"];
NSString *errorDataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];