Delphi: Usando o Google URL Shortener com IdHTTP - 400 Bad Request

Estou tentando acessar o encurtador de URL (http://goo.gl/ ) através de sua API de dentro do Delphi. No entanto, o único resultado que obtenho é:HTTP / 1.0 400 Bad Request (razão: parseError)

Aqui está o meu código (em um formulário com umButton1, Memo1 eIdHTTP1 isso temIdSSLIOHandlerSocketOpenSSL1 como seu IOHandler. Eu tenho as DLLs OpenSSL de 32 bits necessáriashttp://indy.fulgan.com/SSL/ e coloque-os no diretório do .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;

Atualizar: Eu terminei a minha chave de API neste exemplo (normalmente deve funcionar bem sem uma por algumas tentativas), mas se você quiser tentar com a sua própria, você pode substituir oactionurl corda com'https://www.googleapis.com/urlshortener/v1/url?key=<yourapikey>';

A mensagem ParseError me leva a acreditar que pode haver algo errado com a codificação do longurl quando ele é postado, mas eu não sei o que mudar.

Eu estive pensando sobre isso por um bom tempo agora e tenho certeza que o erro está bem diante dos meus olhos - eu simplesmente não estou vendo isso agora. Qualquer ajuda é, portanto, muito apreciada!

Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion