Ваши комментарии

Разобрался, потомкам может пригодится:

function GetDaData(URL, ContentType, Accept, Token, Body: string): string;
var
    IdHTTP1: TIdHTTP;
    StringStream: TStringStream;
begin
    IdHTTP1 := TIdHTTP.Create;
    StringStream := TStringStream.Create('', TEncoding.UTF8);

    try
        IdHTTP1.HTTPOptions := [hoKeepOrigProtocol,hoForceEncodeParams,hoNoProtocolErrorException,hoWantProtocolErrorContent];
        IdHTTP1.Request.ContentEncoding := 'UTF-8';
        IdHTTP1.Request.ContentType := ContentType;
        IdHTTP1.Request.Accept := Accept;

        IdHTTP1.Request.CustomHeaders.Add('Authorization: Token ' + Token);
        StringStream.WriteString(Body);

        Result := IdHTTP1.Post(URL, StringStream);
    finally
        StringStream.Free;
        IdHTTP1.Free;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
    URL: string;
    ContentType: string;
    Accept: string;
    Token: string;
    Body: string;
begin
    URL := 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/fio';
    ContentType := 'application/xml';
    Accept := 'application/xml';
    Token := '***';
    Body := 'Рос';
    Memo1.Text := GetDaData(URL, ContentType, Accept, Token, Body)
end;

procedure TForm1.Button2Click(Sender: TObject);
var
    URL: string;
    ContentType: string;
    Accept: string;
    Token: string;
    Body: string;
begin
    URL := 'http://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address';
    ContentType := 'application/json';
    Accept := 'application/json';
    Token := '***';
    Body := '{ "query": "Рос" }';
    Memo1.Text := GetDaData(URL, ContentType, Accept, Token, Body)
end;

Добрый день, тоже пытаюсь повторить код в Delphi, но  всегда выдает ошибку: Project Project1.exe raised exception class EIdHTTPProtocolException with message 'HTTP/1.1 400 Bad Request'.

В чем может быть проблема?



Сервис поддержки клиентов работает на платформе UserEcho