powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / RTC: элементарный HTTP клиент
16 сообщений из 16, страница 1 из 1
RTC: элементарный HTTP клиент
    #40045863
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю по этому примеру: http://www.realthinclient.com/classroom/

Делаю обычный запрос в браузере
OnCheckRequest приходит
В OnDataReceived Complete возвращает False
Если не анализировать Complete - в любом случае сервак ничего не отвечает

Что нужно поправить?

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
program RealThinClient;

{$APPTYPE CONSOLE}

uses
  System.SysUtils,
  rtcTypes,
  rtcSystem,
  rtcInfo,
  rtcConn,
  rtcDataSrv,
  rtcHttpSrv;

type
  THttpServer = class(TRtcHttpServer)
  protected
    procedure DoCheckRequest(Sender: TRtcConnection);
    procedure DoReceived(Sender: TRtcConnection);
  end;

procedure THttpServer.DoCheckRequest(Sender: TRtcConnection);
begin
  Sender.Accept;
end;

procedure THttpServer.DoReceived(Sender: TRtcConnection);
begin
  if (Request.Complete) then
  begin
    Response.ContentType := 'text/plain';
    Write('OK');
  end;
end;


var
  HttpServer: THttpServer;
  DataProvider: TRtcDataProvider;

begin
  HttpServer := THttpServer.Create(nil);
  try
    DataProvider := TRtcDataProvider.Create(HttpServer);
    DataProvider.Server := HttpServer;
    DataProvider.OnCheckRequest := HttpServer.DoCheckRequest;
    DataProvider.OnDataReceived := HttpServer.DoReceived;

    HttpServer.ServerAddr := 'localhost';
    HttpServer.ServerPort := '1234';
    HttpServer.ServerIPV := rtc_IPVDefault;
    HttpServer.MultiThreaded := True;

    HttpServer.Listen;

    while (True) do
    begin
      Sleep(1000);
    end;

  finally
    HttpServer.Free;
  end;

end.
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40045912
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOU,

давай начнём с азов - что ты хочешь получить в итоге, зачем тебе тут THttpServer

Ты же спрашиваешь про HttpClient, а не HttpServer

И по ссылке у тебя - "RTC HTTP Server in 199 lines of code"
а в заголовке - "элементарный HTTP клиент"
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40045916
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
чтобы сделать элементарный Http клиент, достаточно создать инстанс TRtcHttpClient
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40045918
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

попробуй добавить обработчик OnRequestNotAccepted
может там что увидишь
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40045920
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опечатался
сорян
сервер
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40045922
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747,

Так я же вручную Accept вызываю
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40045934
vkorshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А где with TRtcDataServer(Sender) do ?
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40045935
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
procedure THttpServer.DoReceived(Sender: TRtcConnection);
begin
  if (Request.Complete) then
  begin
    Response.ContentType := 'text/plain';
    Write('OK');
  end;
end;



Request откуда ты взял тут ?
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40045936
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkorshun,

Код: pascal
1.
2.
TRtcHttpServer = class(TRtcDataServer)
THttpServer = class(TRtcHttpServer)
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40045937
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOU,

сделай для начала по примеру
SOFT FOR YOU
Делаю по этому примеру: http://www.realthinclient.com/classroom/
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40045945
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

Реквест это свойство сервера
Ты точно на RTC программируешь?
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40045948
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
Реквест это свойство сервера
Внезапно: слушающий сокет и клиентский сокет - это два разных сокета
SOFT FOR YOU
Ты точно на RTC программируешь?
Ты точно понимаешь, что ты пишешь? Или программирование методом научного тыка?
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40045965
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkorshun,

Жесть
Большое спасибо :)
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40046100
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkorshun
Не поняли Вы меня.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
procedure THttpServer.DoCheckRequest(Sender: TRtcConnection);
begin
  Sender.Accept;
end;

procedure THttpServer.DoReceived(Sender: TRtcConnection);
begin
  if (Sender.Request.Complete) then
  begin
    Sender.Response.ContentType := 'text/plain';
    Sender.Write('OK');
  end;
end;

Так работает
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40048214
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И снова здравствуйте

При запросе на сервер передаётся application/json
Вопрос, как из TRtcRequest получить передаваемый JSON?
Свойство DataSize возвращает правильное значение. Как получить сами данные - пока не ясно
...
Рейтинг: 0 / 0
RTC: элементарный HTTP клиент
    #40048265
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашёл
Sender.Read
:)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / RTC: элементарный HTTP клиент
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]