Пример Indy 10 Http Server

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

Ответ 1

  • Запустите новый проект VCL Forms
  • Отбросить компонент TidHTTPServer в форму
  • Дважды щелкните форму для создания события OnCreate() и активируйте сервер

    IdHTTPServer1.Active: = True;

  • Вернитесь в форму, выберите компонент 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 в предложение Uses

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

Ответ 2

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

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