Перейти к содержанию
Fire Monkey от А до Я

Поиск сообщества

Показаны результаты для тегов 'Rest'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Защита от ботов


Город


Интересы

Найдено: 12 результатов

  1. Добрый всем день! Уважаемые коллеги, столкнулись с такой проблемой. Если есть DataSnap сервер, работающий в режиме Session, и клиент, написанный на Delphi с использованием TSqlConnection к серверу по протоколу DataSnap. то все работает. Т.е. клиент открывает соединение, вызывает методы сервера , при этом на сервере, в экземпляре класса ServerMethod ( живущий от Коннекта, до его закрытия) - хранятся все данные сессии, ИД клиента, его настройки и т.д., и закрыват соединение, при этом сервер уничтожает экземпляр класса ServerMethod, со всеми данными. Встал вопрос, как использовать этот же сервер, с другими клиентами, работающими по REST, например PHP, JS. У DS сервера есть rest протокол, НО! после любого обращения по REST, сервер создает и уничтожает сразу класс ServerMethod ( т.е. работает в режиме LifiCicle = Invocation, о чем честно написано в документации) Т.е. хранить данные подключения не получится. Чтобы не переписывать сервер, решили попытаться прикинуться клиентом DS. Поставили между сервером DS и клиентом DS снифер. Выяснилось, что они общаются между собой по интерфейсу tunel. т.е. вместо http://docwiki.embarcadero.com/RADStudio/Rio/en/DataSnap_REST_Messaging_Protocol надо обращаться на http://host:port/datasnap/tunnel/[ClassName]/[MethodName]/[ParamValue] вообщем там целая жизнь из команд PUT, GET.. Описания этого протока не нашел.. Может кто уже имел такой опыт по сопряжению REST клиента и DS сервера в режиме LifeCicle = Session. В приложенном файле протоколе обмена - открытие соединения c с клиента , без авторизации ( TSqConnect ) - выполнение метода LoginByKartVDevOsDOC с параметрами - внутренний логин в систему, пс. а почему txt нельзя прикрепить?? пришлось зарарить.. protokol DataSnap.rar
  2. Доброго времени суток! Навеяно этой темой. Посмотрел реализацию от @Pax Beach (за что ему спасибо большое) и столкнулся с тем что TRESTClient со всеми потрахами это просто дикий ужас. Решил собрать аналогичный пример, только не использовать TREST*** немного опишу, свою реализацию uAppSettings.pas - хранит описание вашего приложения созданного в ВК FMX.RESTLight.pas - модуль "общения" клиента с сервером FMX.RESTLight.Types.pas - тут хранятся типы для работы TRESTLight Приведу код, который постит Вам на стену текст var aFields: TArray<TmyRestParam>; aJSON: string; begin SetLength(aFields, 5); aFields[0] := TmyRestParam.Create('access_token', FAuthToken.token, false); aFields[1] := TmyRestParam.Create('v', FVKApp.APIVersion, false); aFields[2] := TmyRestParam.Create('owner_id', FAuthToken.user_id, false); aFields[3] := TmyRestParam.Create('friends_only', '0', false); aFields[4] := TmyRestParam.Create('message', 'Тестовое сообщение <RESTLight>', false); TTask.Run( procedure begin aJSON := TRESTLight.Execute('wall.post', FVKApp, aFields); TThread.Synchronize(TThread.CurrentThread, procedure begin Memo1.Lines.Add('---- wall.post ----'); Memo1.Lines.Add(aJSON); end); end); а вот так можно заливать файлы var aFields: TArray<TmyRestParam>; aJSON: string; begin SetLength(aFields, 4); aFields[0] := TmyRestParam.Create('access_token', FAuthToken.token, false); aFields[1] := TmyRestParam.Create('v', FVKApp.APIVersion, false); aFields[2] := TmyRestParam.Create('owner_id', FAuthToken.user_id, false); aFields[3] := TmyRestParam.Create('photo', aUploadFile, true); // для файлов указывается !!!true!!! TTask.Run( procedure begin // для загрузки файлов использовать TRESTLight.Execute2, в нем можно указать произвольный URL aJSON := TRESTLight.Execute2(aUploadURL, FVKApp, aFields); TThread.Synchronize(TThread.CurrentThread, procedure begin Memo1.Lines.Add('---- upload file to server ----'); Memo1.Lines.Add(aJSON); end); end); P.S. На правильность и оригинальность не претендую, просто альтернативный вариант. Мне например не понравилась как устроен TRESTClient, много компонентов лишних. В боевых условиях наверное код еще будет модернизироваться, я рассмотрел только пару методов, но думаю общая концепция не сильно поменяется GitHub TRESTLight.zip
  3. Ufomaster

    DropBox Rest

    У кого есть рабочий пример получения бинарного файла из дроб бокса ? REST; Текстовый принимает, а бинарный нет. Помогите.
  4. Возникает вышеозначенная ошибка при попытке декодировать приходящий от сервера текст. Я пробовал в различных вариантах. http://www.fmxexpress.com/secure-your-rest-client-with-ssl-and-gzip-compression-in-delphi-xe8-firemonkey-on-android-and-ios/ http://www.fmxexpress.com/decode-gzip-content-from-the-rest-client-in-delphi-xe7-firemonkey-on-android-and-ios/ Я получаю либо ошибку из названия темы, либо Error on call to ZLib library function inflateInit2_ В общем не работает только на iOS (iPhone). На Android, Windows, MacOS работает корректно декомпрессия в автоматическом режиме, потому вопроса о строках не возникает.
  5. Собственно есть способ получать и распаковывать данные, полученные в GZIP. В качестве примера: procedure TFMain.FormCreate(Sender: TObject); begin (ReqGet.Client.HTTPClient.Peer.GetObject as TIdCustomHTTP).Compressor := TIdCompressorZLib.Create(ReqGet.Client.HTTPClient.Peer.GetObject as TIdCustomHTTP); ReqGet.AcceptEncoding := 'gzip,deflate'; ... end; А вот как их отправить (как запаковать - механизм? и куда подставить строку) - не понятно. Отправка интересует и POST и GET Прошу помощи.
  6. SergeyIT

    TRESTClient

    Что то нелепое. Помогите, плиз, разобраться. Ничего не кроме формы. Любой вызов client:= TRESTClient.Create('http://www.google.com'); с любым адресом приводит к появлению
  7. Syb

    Помогите с REST разобраться

    Я могу совсем что то не правильно делать, хочу получить данные согласно API : http://glonasssoft.ru/wiki/?wiki_name=API var jValue:TJSONValue; s,s1:string; begin RestClient1.BaseURL:='http://dev.glonasssoft.ru/auth/login'; Restrequest1.Execute; jValue:=RESTResponse1.JSONValue; s:=jValue.ToString; s1:= copy(s,pos('AuthID:"',s)+11,pos('","U',s)-pos('AuthID:"',s)-11);//достал ключ RestClient2.BaseURL:='http://dev.glonasssoft.ru/vehicles_'; Restrequest2.Params[0].Value:=s1; -здесь параметр типа HttpHeader задан X-Auth в него сую ключ Restrequest2.Execute; - говорит не авторезирован jValue:=RESTResponse2.JSONValue; s:=jValue.ToString; что я не так делаю?
  8. Всем привет! Возникла трудность при разработке приложения для iOS. Необходимо получить информацию о пользователе в VK методом "users.get" Использую REST для авторизации и запросов. При попытке выполнить запрос к https://api.vk.com/method/ возникает ошибка : First chance exception at $000178C8. Exception class EIdOSSLCouldNotLoadSSLLibrary with message 'Could not load SSL library.' Что нужно сделать чтоб работать с https на iOS? Delphi XE7 Update 1
  9. Добрый день! Прошу помощи. Работая с VCL для набора данных использую TDataSet, какой аналог есть в FMX. Поясню подробнее: У меня есть сервер на PHP обращаясь к которому я получаю ответ в JSON {"field_names":["ID","VNAME","VPASSWORD","RROLE","VDESCRIPTION","VNAMEE","USERROLE"],"data":[[1,"\u0418\u0432\u0430\u043d\u043e\u0432 \u0418.\u0418.","123",1,"\u041f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c \u0443\u0447\u0435\u0431\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u044f.","\u0418\u0432\u0430\u043d\u043e\u0432 \u0418.\u0418.","\u041f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c"]]} Это только по первому пользователю. Их как понимаете мб больше! Хочу результат ответа PHP скрипта засунуть в структуру! В VCL эту роль хорошо выполняет TDataSet, какой аналог в FMX?
  10. Приветствую. Хочу подключить сервис dadata.ru к своему приложению. Вот описание REST API: https://confluence.hflabs.ru/pages/viewpage.action?pageId=282689640 Все хорошо, но вот токен авторизации (Authorization: Token ${API_KEY}) добавить в TRESTClient не могу. Как вообще добавить произвольный Header в запрос?
  11. RESTRequest непонятно можно настроить визуально только под один запрос?? Нельзя было сделать чтобы параметры привязывались к поля resourse , resourse1-параметры resourse2-параметры и непонятно что делать когда rest не разбирает автоматом JSON визуально как делать тогда
  12. Мне необходимо произвести некоторые действия в случае возникновения исключения Time Out в RESTRequest. Но событие OnHTTPProtocolError не возникает при исключениях, не связанных с HTTP: This event will not get fired if a non HTTP-related exception occurs during execution. This includes, but is not limited to timeout and server not found related exceptions. Как выйти из ситуации и обработать Time Out? Наверное может помочь try except, но какого класса исключение нужно ловить, пока не нашел.
×
×
  • Создать...