Пример сервера Indy 10 Http - PullRequest
       38

Пример сервера Indy 10 Http

14 голосов
/ 20 августа 2011

Мне нужен простой пример кода для Indy 10 Http Server Когда запрос (post) просто отображает его. Есть ли для этого пример Indy 9?Спасибо

Ответы [ 2 ]

19 голосов
/ 26 августа 2011
  1. Запуск нового проекта VCL Forms
  2. Перетащите компонент TidHTTPServer на форму
  3. Дважды щелкните форму, чтобы создать OnCreate () событие и активация сервера

    IdHTTPServer1.Active: = True;

  4. Вернувшись в форму, выберите компонент HTTP-сервер и создайте OnCommandGet событие

В этом событии OnCommandGet (которое вызывается в дочернем потоке всякий раз, когда происходит GET / POST), обработайте запрос, заполнив ответ..

AResponseInfo.ContentText := '<html><head><title>My First Response</title></head>' + 
  '<body>Command: ' + ARequestInfo.Command +
  '<br />Host: ' + ARequestInfo.Host +
  '<br />URI: ' + ARequestInfo.URI +
  '<br />UserAgent: ' + ARequestInfo.UserAgent +
  '</body></html>';

В зависимости от версии Delphi, вам также может понадобиться добавить IdContext в ваше Использование предложение

Запустить демонстрационное приложение изатем запустите браузер до http://localhost, и вы должны получить ответ.(Если вы не слушаете что-то еще на порту 80, в этом случае ваше демонстрационное приложение сгенерирует исключение)

7 голосов
/ 21 августа 2011

Образцы Indy 9 по-прежнему доступны на сайте IndyProject и включают демонстрационный проект HTTPServer. Indy 10 Demo Playground также работает.

В IdHTTPServer команды Get и Post по сути обрабатываются одинаково и обрабатываются в событии CommandGet.

...