Нужно отправить 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 был корректным?