Delphi: Uso del acortador de URL de Google con IdHTTP - 400 Bad Request

Estoy intentando acceder al acortador de URL (http://goo.gl/ ) a través de su API desde Delphi. Sin embargo, el único resultado que obtengo es:HTTP / 1.0 400 Solicitud incorrecta (motivo: parseError)

Aquí está mi código (en un formulario con unBotón 1, Memo1 yIdHTTP1 que tieneIdSSLIOHandlerSocketOpenSSL1 como su IOHandler. Obtuve las DLLs OpenSSL de 32 bits necesarias dehttp://indy.fulgan.com/SSL/ y póngalos en el directorio del .exe):

procedure TFrmMain.Button1Click(Sender: TObject);
    var html, actionurl: String;
    makeshort: TStringList;
begin
try
 makeshort := TStringList.Create;

 actionurl := 'https://www.googleapis.com/urlshortener/v1/url';
 makeshort.Add('{"longUrl": "http://slashdot.org/stories"}');

 IdHttp1.Request.ContentType := 'application/json';
 //IdHTTP1.Request.ContentEncoding := 'UTF-8'; //Using this gives error 415

 html := IdHTTP1.Post(actionurl, makeshort);
 memo1.lines.add(idHTTP1.response.ResponseText);

     except on e: EIdHTTPProtocolException do
        begin
            memo1.lines.add(idHTTP1.response.ResponseText);
            memo1.lines.add(e.ErrorMessage);
        end;
    end;

 memo1.Lines.add(html);
 makeshort.Free;
end;

Actualizar: He dejado de usar mi clave de API en este ejemplo (por lo general, debería funcionar bien sin uno durante algunos intentos), pero si desea probarlo con el suyo, puede sustituir elacción cadena con'https://www.googleapis.com/urlshortener/v1/url?key=<yourapikey>';

El mensaje ParseError me lleva a creer que podría haber algún problema con la codificación del longurl cuando se publique, pero no sabría qué cambiar.

He estado discutiendo sobre esto durante bastante tiempo y estoy seguro de que el error está justo delante de mis ojos, simplemente no lo estoy viendo en este momento. Cualquier ayuda es por lo tanto muy apreciada!

¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta