0

サービスアカウントを使用してフュージョンテーブルAPIにアクセスしており、フュージョンテーブルに値を挿入するためのPOSTリクエストを送信したいと考えています。次のエラーが発生します。

    400 Bad Request
     {
   "error": {
  "errors": [
  {
"domain": "global",
"reason": "parseError",
"message": "Parse Error"
}
],
  "code": 400,
 "message": "Parse Error"
 }
 }

これは私のコードです。どこが間違っているのか教えてください。

            String PostUrl = "https://www.googleapis.com/fusiontables/v1/tables";
            HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory(credential);

            //generate the REST based URL
            GenericUrl url = new GenericUrl(PostUrl.replaceAll(" ", "%20"));
            //make POST request
            String requestBody = "sql=INSERT INTO 1DqxKZUct_VhfG3fZy6Lru1CamniDO8vv5qW6jO8 (Species) VALUES ('Red Shoes')";
            HttpRequest request = requestFactory.buildPostRequest(url, ByteArrayContent.fromString("application/json", requestBody));
            request.getHeaders().setContentType("application/json");
            request.getHeaders().set("sql", "INSERT INTO 1DqxKZUct_VhfG3fZy6Lru1CamniDO8vv5qW6jO8 (Species) VALUES ('Red Shoes')");
            System.out.println("HttpRequest request" + request);
            HttpResponse response = request.execute();
            String content = response.parseAsString();
4

1 に答える 1

0

テーブルのエンドポイントではなく、GoogleAPIサービスのエンドポイントをクエリするようにリクエストを送信する必要があります。つまり、PostUrl値を次のように変更します

        String PostUrl = "https://www.googleapis.com/fusiontables/v1/query";
于 2013-02-12T05:08:27.813 に答える