Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Delphi |
![]() ![]() |
SOFT FOR YOU Member Откуда: Сообщений: 3155 |
Делаю по этому примеру: http://www.realthinclient.com/classroom/ Делаю обычный запрос в браузере OnCheckRequest приходит В OnDataReceived Complete возвращает False Если не анализировать Complete - в любом случае сервак ничего не отвечает Что нужно поправить? 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. |
16 фев 21, 16:39 [22281715] Ответить | Цитировать Сообщить модератору |
defecator Member Откуда: Сообщений: 39691 |
SOFT FOR YOU, давай начнём с азов - что ты хочешь получить в итоге, зачем тебе тут THttpServer Ты же спрашиваешь про HttpClient, а не HttpServer И по ссылке у тебя - "RTC HTTP Server in 199 lines of code" а в заголовке - "элементарный HTTP клиент" Сообщение было отредактировано: 16 фев 21, 17:41 |
16 фев 21, 17:47 [22281775] Ответить | Цитировать Сообщить модератору |
defecator Member Откуда: Сообщений: 39691 |
чтобы сделать элементарный Http клиент, достаточно создать инстанс TRtcHttpClient |
16 фев 21, 17:50 [22281779] Ответить | Цитировать Сообщить модератору |
Cobalt747 Member Откуда: Сообщений: 2282 |
SOFT FOR YOU, попробуй добавить обработчик OnRequestNotAccepted может там что увидишь |
16 фев 21, 17:52 [22281781] Ответить | Цитировать Сообщить модератору |
SOFT FOR YOU Member Откуда: Сообщений: 3155 |
Опечатался сорян сервер |
16 фев 21, 17:52 [22281783] Ответить | Цитировать Сообщить модератору |
SOFT FOR YOU Member Откуда: Сообщений: 3155 |
Cobalt747, Так я же вручную Accept вызываю |
16 фев 21, 17:54 [22281785] Ответить | Цитировать Сообщить модератору |
vkorshun Member Откуда: Сообщений: 61 |
А где with TRtcDataServer(Sender) do ? |
16 фев 21, 18:13 [22281802] Ответить | Цитировать Сообщить модератору |
defecator Member Откуда: Сообщений: 39691 |
procedure THttpServer.DoReceived(Sender: TRtcConnection); begin if (Request.Complete) then begin Response.ContentType := 'text/plain'; Write('OK'); end; end; Request откуда ты взял тут ? |
16 фев 21, 18:16 [22281803] Ответить | Цитировать Сообщить модератору |
SOFT FOR YOU Member Откуда: Сообщений: 3155 |
vkorshun,TRtcHttpServer = class(TRtcDataServer) THttpServer = class(TRtcHttpServer) |
16 фев 21, 18:16 [22281804] Ответить | Цитировать Сообщить модератору |
defecator Member Откуда: Сообщений: 39691 |
SOFT FOR YOU, сделай для начала по примеру
|
||||
16 фев 21, 18:21 [22281805] Ответить | Цитировать Сообщить модератору |
SOFT FOR YOU Member Откуда: Сообщений: 3155 |
defecator, Реквест это свойство сервера Ты точно на RTC программируешь? |
16 фев 21, 18:33 [22281813] Ответить | Цитировать Сообщить модератору |
_Vasilisk_ Member Откуда: Украина, Харьков Сообщений: 12572 |
|
||||||||
16 фев 21, 18:36 [22281818] Ответить | Цитировать Сообщить модератору |
SOFT FOR YOU Member Откуда: Сообщений: 3155 |
vkorshun, Жесть Большое спасибо :) |
16 фев 21, 19:00 [22281838] Ответить | Цитировать Сообщить модератору |
Гаджимурадов Рустам Member Откуда: Сообщений: 62406 |
|
||||
17 фев 21, 10:38 [22282077] Ответить | Цитировать Сообщить модератору |
SOFT FOR YOU Member Откуда: Сообщений: 3155 |
И снова здравствуйте При запросе на сервер передаётся application/json Вопрос, как из TRtcRequest получить передаваемый JSON? Свойство DataSize возвращает правильное значение. Как получить сами данные - пока не ясно |
23 фев 21, 18:23 [22285267] Ответить | Цитировать Сообщить модератору |
SOFT FOR YOU Member Откуда: Сообщений: 3155 |
Нашёл Sender.Read :) |
24 фев 21, 00:03 [22285409] Ответить | Цитировать Сообщить модератору |
Все форумы / Delphi | ![]() |