title: Sending POST request using com.google.api.client.http.HttpRequest object in Google API
body: <p>I have to send POST request with following structure.</p>
  
  <pre><code>    POST https://www.googleapis.com/fusiontables/v1/tables
      Authorization: /* auth token here */
      Content-Type: application/json
  
      {
       "name": "Insects",
       "columns": [
       {
          "name": "Species",
          "type": "STRING"
       },
       {
           "name": "Elevation",
           "type": "NUMBER"
       },
      {
           "name": "Year",
           "type": "DATETIME"
      }
        ],
     "description": "Insect Tracking Information.",
     "isExportable": true
      }
  </code></pre>
  
  <p>I am using below code to send the POST Request but i am getting a response as "400 Bad Request"</p>
  
  <pre><code>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 = "{'name': 'newIndia','columns': [{'name': 'Species','type': 'STRING'}],'description': 'Insect Tracking Information.','isExportable': true}";
  
  HttpRequest request = requestFactory.buildPostRequest(url, ByteArrayContent.fromString(null, requestBody));
  request.getHeaders().setContentType("application/json");
  // Google servers will fail to process a POST/PUT/PATCH unless the Content-Length
  // header &gt;= 1
  //request.setAllowEmptyContent(false);
  System.out.println("HttpRequest request" + request);
  HttpResponse response = request.execute();
  </code></pre>
  
  <p>I wonder if anyone there who have worked on this similar task can help me out sending the POST request according to the POST request format as mentioned at start of this question.</p>