|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как отправить JSON через Delphi?
Доброго времени суток друзья! Который день уже мучаюсь с этим Json и Delphi...
В чем суть. Суть в том чтобы отправить на сервер параметры JSON <code>POST regi HTTP/1.1 Host: blablabla Content-Type: application/json; charset=utf-8 Connection: keep-alive Proxy-Connection: keep-alive Accept: */* Accept-Language: ru;q=1, en;q=0.9 Accept-Encoding: gzip, deflate {"car_spoiler":"81231233245","model":"1"}</code> и получить ответ <code>{"success":true,"msg":null}</code> Если же ответ не совпадает с тем что указан выше, то изменять значение model из текстового файла, в котором будут такие значения <code>1 2 3 4 итд</code> пока не получит ответ сервера <code>{"success":true,"msg":null}</code> А как получит ответ <code>{"success":true,"msg":null}</code> - сохранит результат в текстовый документ. Вот консольный вариант для Delphi Код:
program JSONPostExample; {$APPTYPE CONSOLE} uses IdHTTP, IdGlobal, SysUtils, Classes; var HTTP: TIdHTTP; RequestBody: TStream; ResponseBody: string; begin HTTP := TIdHTTP.Create; try try RequestBody := TStringStream.Create('{"phone":"89127518330","account":null,"deviceid":null,"devicemodel":"iPad4,1","pincode":"1233","configid":1}', TEncoding.UTF8); try HTTP.Request.Accept := 'application/json'; HTTP.Request.ContentType := 'application/json'; ResponseBody := HTTP.Post('https://weborder.taxi434343.ru/taxiclient/2/registerpin', RequestBody); WriteLn(ResponseBody); WriteLn(HTTP.ResponseText); finally RequestBody.Free; end; except on E: EIdHTTPProtocolException do begin WriteLn(E.Message); WriteLn(E.ErrorMessage); end; on E: Exception do begin WriteLn(E.Message); end; end; finally HTTP.Free; end; ReadLn; ReportMemoryLeaksOnShutdown := True; end. Прошу помочь с дополнением кода. Заранее спасибо! Последний раз редактировалось Admin, 28.12.2015 в 19:18. |