Delphi: Использование Google URL Shortener с IdHTTP - 400 неверных запросов

Я пытаюсь получить доступ к URL Shortener (http://goo.gl/ через API изнутри Delphi. Тем не менее, единственный результат, который я получаю, это:HTTP/1.0 400 Bad Request (reason: parseError)

Вот мой код (на форме сButton1, Memo1 а такжеIdHTTP1 который имеетIdSSLIOHandlerSocketOpenSSL1 как его IOHandler. Я получил необходимые 32-битные библиотеки OpenSSL отhttp://indy.fulgan.com/SSL/ и поместите их в каталог .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;

Update: В этом примере я пропустил свой ключ API (обычно он должен работать без единого ключа в течение нескольких попыток), но если вы хотите попробовать его самостоятельно, вы можете заменитьactionurl string with 'https://www.googleapis.com/urlshortener/v1/url?key=<yourapikey>';

Сообщение ParseError заставляет меня поверить, что в кодировке longurl может быть что-то не так, когда она публикуется, но я не знаю, что изменить.

Я размышлял над этим уже довольно давно, и я уверен, что ошибка прямо перед моими глазами - я просто не вижу ее прямо сейчас. Поэтому любая помощь очень ценится!

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос