Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2021, 11:21   #1
DimaBr
Новичок
Джуниор
 
Регистрация: 05.04.2010
Сообщений: 4
По умолчанию Indy 10 POST запрос

Всем добрый день !
Нужна помощь, т.к. с Indy никогда не работал.

Имеется XE8 и Indy10
Задача - получить GET запросом одни данные, затем получить POST запросом вторые.
С GET запросом проблем нет, json получаю, нос POST запросом никак не могу разобраться.

В документации сайта описан пример POST запроса:
curl -X POST "https://............................." -H "accept: application/json" -H "Authorization: ........................" -H "Content-Type: application/json" -d "{"Ids":[..............]}"


Пытаюсь так:

Код:
var IdHTTP1: TidHTTP;
      api_token, get_url: String;
      S: TStringList;
 
 
S:=TStringList.create;
get_url:='https://.............................................';
api_token:='...............................................';
IdHTTP1:=TidHTTP.Create(Application);
IdHTTP1.CookieManager:=IdCookieManager1;
IdHTTP1.IOHandler:=IdSSLIOHandlerSocketOpenSSL1;
 
IdHTTP1.Request.ContentType:='application/json';
IdHTTP1.Request.CustomHeaders.AddValue('Authorization', api_token);
 
S.Add('Ids='+ '107775014');
Memo1.Lines.Add(IdHTTP1.Post(get_url, S));
 
IdHTTP1.Disconnect;
IdHTTP1.Free;
S.Free;
В итоге получаю 400 ошибку.
Подскажите как правильно формировать POST запрос?
DimaBr вне форума Ответить с цитированием
Старый 03.11.2021, 12:21   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 253
По умолчанию

Ну вам же json надо отправлять, а вы отправляете строку Ids=107775014
ForenLi на форуме Ответить с цитированием
Старый 03.11.2021, 12:32   #3
DimaBr
Новичок
Джуниор
 
Регистрация: 05.04.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Ну вам же json надо отправлять, а вы отправляете строку Ids=107775014
В том-то и дело, надо отправить Ids=107775014 и получить от сервера ответ в виде json
DimaBr вне форума Ответить с цитированием
Старый 03.11.2021, 12:40   #4
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 253
По умолчанию

Цитата:
Сообщение от DimaBr Посмотреть сообщение
В документации сайта описан пример POST запроса:
curl -X POST "https://............................." -H "accept: application/json" -H "Authorization: ........................" -H "Content-Type: application/json" -d "{"Ids":[..............]}"
Читайте внимательнее - нет там строки
ForenLi на форуме Ответить с цитированием
Старый 03.11.2021, 12:47   #5
DimaBr
Новичок
Джуниор
 
Регистрация: 05.04.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Читайте внимательнее - нет там строки
А как тогда правильно отправить json?

У меня в Memo1 есть json полученный методом GET где и есть данные Ids

Пробую так:
Код:
SL.Add(Memo1.Text);
Memo1.Clear;
Memo1.Lines.Add(IdHTTP1.Post(get_url, SL));
Получаю ответ сервера:
{"error":false,"errorText":"","addi tionalErrors":null,"data":[]}
DimaBr вне форума Ответить с цитированием
Старый 03.11.2021, 13:12   #6
DimaBr
Новичок
Джуниор
 
Регистрация: 05.04.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Читайте внимательнее - нет там строки
Спасибо за наводку, все получилось с таким кодом:
Код:
SL.Add('{"Ids": [107775014]}');
Memo1.Lines.Add(IdHTTP1.Post(get_url, SL));
DimaBr вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Indy, посмотреть ответ на Post запрос Red83 Работа с сетью в Delphi 1 29.02.2016 07:46
Indy, Post, Правильно сформировать запрос? XerSon Работа с сетью в Delphi 0 18.02.2013 09:34
post indy приложения divwond Работа с сетью в Delphi 5 02.02.2012 23:49
INDY Post, не получается отправить все параметры dlauser Работа с сетью в Delphi 3 11.01.2011 11:44
POST на indy HTTP/1.1 404 Not Found jskorvin Работа с сетью в Delphi 2 14.12.2010 13:52

Реклама для незарегистрированных, регистрация на форуме