dadata и Delphi
Здравствуйте. К сожалению не нашел модуля на делфи. Мне надо создать запрос по XML. Получить ответ .
Целый день пытаюcь, но не получается. МОжет у кого то есть готовые решения, как сделать запрос и получить ответ на DELPHI? Интересует XML
Вот что насобирал. Компилируется. Но ошибка там неверный запрос.
procedure TForm1.Button1Click(Sender: TObject);
var ResponseOut: TStringStream;
httpRequest:TStrings;
begin
ResponseOut := TStringStream.Create('');
httpRequest := TStringList.Create;
httpRequest.Add ('Content-Type: application/xml');
httpRequest.Add ('Accept: application/xml');
httpRequest.Add ('Authorization: Token ***');
httpRequest.Add ('<req>');
httpRequest.Add ('<query>Москва</query>');
httpRequest.Add ('</req>');
with IdHTTP1 do
begin
Request.ContentType:='text/xml; charset=utf-8';
IdHTTP1.Post('http://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address',httpRequest,ResponseOut);
end;
memo1.Lines.Add(ResponseOut.DataString);
end;
end.
Сервис поддержки клиентов работает на платформе UserEcho
Все получилось!
procedure TForm1.Button1Click(Sender: TObject);
var
stringstream: TStringStream;
begin
stringstream:=TStringStream.Create('');
try
IdHTTP1.Request.ContentEncoding := 'utf-8';
IdHTTP1.Request.ContentType:='application/xml';
IdHTTP1.Request.Accept:='application/xml';
IdHTTP1.Request.CustomHeaders.Add('Authorization: Token ***');
stringstream.WriteString(UTF8Encode('<req><query>Киров</query></req>'));
Memo1.Text:=IdHTTP1.Post('http://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address', stringstream);
Memo1.Text :=Utf8ToAnsi(Memo1.Text)
finally
stringstream.Free;
end;
end;
end.
Отлично! Спасибо, что сообщили.
Если появятся вопросы — обращайтесь.
пытаюсь повторить код, но возвращается http/1.1 500 internal Server Error.
на форме IdHTTP1 + IdSSLIOHandlerSocketOpenSSL1.
Может IdHTTP1 еще надо как-то настраивать? подскажите как
Приложите полный код архивом, посмотрим.
Понял ошибку. Отправлял фамилию на адрес проверки организаций
Хорошо, что разобрались. Пишите, если будут вопросы.
Добрый день, тоже пытаюсь повторить код в Delphi, но всегда выдает ошибку: Project Project1.exe raised exception class EIdHTTPProtocolException with message 'HTTP/1.1 400 Bad Request'.
В чем может быть проблема?
Разобрался, потомкам может пригодится: