Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > Delphi x64
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.12.2015, 23:27
baseqlo baseqlo вне форума
Прохожий
 
Регистрация: 27.12.2015
Сообщения: 1
Версия Delphi: Delphi 2010
Репутация: 10
Восклицание Как отправить 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.
Ответить с цитированием
  #2  
Старый 28.12.2015, 19:21
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,354
Версия Delphi: 7
Репутация: выкл
По умолчанию

Для работы с json есть отдельный модуль uJSON
Вложения
Тип файла: zip json-v-1-0-6.zip (72.4 Кбайт, 9 просмотров)
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:07.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2017

ВКонтакте   Facebook   Twitter