【问题标题】:creating Fusion Table from iOS从 iOS 创建 Fusion Table
【发布时间】:2013-07-27 14:07:49
【问题描述】:

我从事使用 Google 融合表的 ios 应用程序。在previous question 我得到了建议并取得了进展,但仍在努力创建融合表。我的代码:

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 错误 400。)”。我做错了什么?

【问题讨论】:

    标签: ios objective-c google-fusion-tables


    【解决方案1】:

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

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
    [request setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
    GTMHTTPFetcher *fetcher = [GTMHTTPFetcher fetcherWithRequest:request];
    

    另外,在进行GTMHTTPFetcher 错误处理时,您可能会使用以下方法获得更多信息:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 1970-01-01
      相关资源
      最近更新 更多