tags:

views:

42

answers:

0

I'm trying to use Google Spreadsheet api to update a cell of a worksheet. I followed the guide , tried to send a HttpPut request to do that but failed.

i got 200 OK from the following Code, but nothing be updated in the worksheet........T.T

String cellUri = "https://spreadsheets.google.com/feeds/cells/tD0jOr1kFs6yHag573hB0YA/od6/private/full/R2C2";

     HttpPut httpput = new HttpPut(cellUri);

     httpput.addHeader( new BasicHeader("Content-Type", "application/atom+xml"));
     httpput.addHeader( new BasicHeader("GData-Version", "3.0"));
     httpput.addHeader( new BasicHeader("If-Match", "*"));

     String reqBody="<entry xmlns=\"http://www.w3.org/2005/Atom\" xmlns:gs=\"http://schemas.google.com/spreadsheets/2006\"&gt;" +
       "<id>https://spreadsheets.google.com/feeds/cells/tD0jOr1kFs6yHag573hB0YA/od6/private/full/R2C2&lt;/id&gt;" +
       "<link rel=\"edit\" type=\"application/atom+xml\" href=\"https://spreadsheets.google.com/feeds/cells/tD0jOr1kFs6yHag573hB0YA/od6/private/full/R2C2/a115r\"/&gt;" +
       "<gs:cell row=\"2\" col=\"2\" inputValue='99999'/>" +
       "</entry>";

     try
     {
      httpput.setEntity( new StringEntity(reqBody));
   HttpResponse updateCellResponse = new DefaultHttpClient().execute(httpput);
   if( updateCellResponse.getStatusLine().getStatusCode() != 200)
    Log.i("html2", "sl : " + updateCellResponse.getStatusLine());

   //display toast notification
   Toast _toast = Toast.makeText(getApplicationContext(), updateCellResponse.getStatusLine().toString() , Toast.LENGTH_SHORT);
   _toast.show();
     }
     catch(ClientProtocolException e )
     {
      Log.i("html2", e.getMessage().toString());
     }
     catch(IOException e )
     {
      Log.i("html2", e.getMessage().toString());
     }

    }