Indy 32700 Ошибки связанные с валидацией JSON

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Indy 32700 Ошибки связанные с валидацией JSON

Сообщение jsa » 09.07.2021 10:59:46

Здравствуйте.
Нужно отправить POST запрос

вот пример формирования
Код: Выделить всё
...
MyClient: TIdHTTP; 
...

procedure TForm1.Button3Click(Sender: TObject);
var json, json1, json2: TJSONObject;   serverResult, addr: string;
begin

   addr:='https://test.test.ru/v4.0';
   try
   json2:=TJSONObject.Create(['id','25',
                              'phone_number','74993334444']);
   json1:=TJSONObject.Create(['access_token','111222333444555666777888999000',
                              'first_call','employee',
                              'virtual_phone_number','7499445555',
                              'contact','9132223333',
                              'employee',json2]);
   json:= TJSONObject.Create(['jsonrpc','2.0',
                              'method','start.employee_call',
                              'id', 'req1',
                              'params',json1]);
    ToSend := TStringList.create;
    ToSend.Text :=json.AsJSON ;   
   ToSend.SaveToFile('T:\test_json_123.txt');   

    MyClient.Request.ContentType:= 'application/json; charset=UTF-8';   
    MyClient.Request.ContentLength:=Length(ToSend.Text);               

    serverResult:= MyClient.Post(addr,ToSend);                   
    if serverResult = '200' then
    ShowMessage('POST запрос отправлен')
  else
    ErrorParse(serverResult);
  finally
    FreeAndNil(json)
  end;
end;                                                             

--- данные в примере изменены

при выполнении возвращается сообщение об ошибке - 32700 Ошибки связанные с валидацией JSON
Отлов снифером показывает, что запрос уходит вот в таком виде
Код: Выделить всё
%7B+%22jsonrpc%22+%3A+%222.0%22%2C+%22method%22+%3A+%22start.employee_call%22%2C+%22id%22+%3A+%22req1%22%2C+%22params%22+%3A+.....
и т.д.

то что не латиница кодируется это понятно, но откуда берутся знаки плюс ?
Как правильно формировать или настроить Indy компоненты чтобы json был корректным?
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30

Рейтинг@Mail.ru