⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.cpp

📁 Delphi快速开发Web Server
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "rtcConn"
#pragma link "rtcDataCli"
#pragma link "rtcHttpCli"
#pragma link "rtcInfo"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::DataReqBeginRequest(TRtcConnection *Sender)
{
  TRtcDataClient* sender = (TRtcDataClient*) Sender;
  TRtcClientRequest* req = (TRtcClientRequest*) sender->Request;

  // make sure our request starts with "/"
  if (req->FileName.SubString(1,1) != "/")
    req->FileName = "/" + req->FileName;

  // define the "HOST" header
  if (req->Host == "")
    req->Host = sender->ServerAddr;

  Memo1->Text = "Requesting '" + req->FileName +
                "' from '" + sender->ServerAddr + "'.";

  // send request header out
  sender->WriteHeader();
}

//---------------------------------------------------------------------------
void __fastcall TForm1::DataReqDataReceived(TRtcConnection *Sender)
{
  TRtcDataClient* sender = (TRtcDataClient*) Sender;
  TRtcClientResponse* res = (TRtcClientResponse*) sender->Response;

  if (res->Started)
  {
    /* Executed only once per request,
       when we start receiving the response. */

    // Clear the info we wrote here in our "OnBeginRequest"
    Memo1->Clear();
    Memo1->Lines->Add("Status code: "+
                      IntToStr(res->StatusCode));
    Memo1->Lines->Add("Status text:"+
                      res->StatusText);
    Memo1->Lines->Add("ALL Headers:");
    Memo1->Lines->Add(res->HeaderText);

    Memo1->Lines->Add("Content Length:");
    Memo1->Lines->Add(IntToStr(res->ContentLength));
    Memo1->Lines->Add("Content body:");
    Memo1->Lines->Add("START >");
  }

  /* Could be executed more than once,
     depending on the content size */

  // add content received now.
  Memo1->Text = Memo1->Text + sender->Read();
  if (res->Done)
  {
    /* Executed only once per request,
        when we have just received it all. */
    Memo1->Lines->Add("< END");
  }
}

//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
  if (Key == 13)
  {
    Key = 0;
    Edit1->SelectAll();

    DataReq->Request->Method = "GET";
    // request the file defined in the Edit field
    DataReq->Request->FileName = Edit1->Text;
    DataReq->Post(); // Post the request
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  DataReq->Request->Method = "GET";
  // request the file defined in the Edit field
  DataReq->Request->FileName = Edit1->Text;
  DataReq->Post(); // Post the request
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -