Delphi2009的Indy全接触之HTTP篇

实现功能:启动一个Http服务。
如下图所示建立工程:

代码如下:
  1. unit HttpUnit;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, IdBaseComponent, IdComponent, IdCustomTCPServer, IdCustomHTTPServer,
  6.   IdHTTPServer, IdContext;
  7. type
  8.   TForm1 = class(TForm)
  9.     IdHTTPServer1: TIdHTTPServer;
  10.     procedure FormCreate(Sender: TObject);
  11.     procedure IdHTTPServer1CommandGet(AContext: TIdContext;
  12.       ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
  13.   private
  14.     { Private declarations }
  15.   public
  16.     { Public declarations }
  17.   protected
  18.     FData: string;
  19.   end;
  20. var
  21.   Form1: TForm1;
  22. implementation
  23. {$R *.dfm}
  24. type
  25.   TSlowStream = class(TFileStream)
  26.   public
  27.     function Read(var Buffer; Count: Longint): Longint; override;
  28.   end;
  29. procedure TForm1.FormCreate(Sender: TObject);
  30. var
  31.   i: Integer;
  32. begin
  33.   IdHTTPServer1.DefaultPort := 6001;
  34.   IdHTTPServer1.Active := True;
  35.   SetLength(FData, 1024);
  36.   for i := 1 to Length(FData) do begin
  37.     FData[i] := Chr(i mod 256);
  38.   end;
  39. end;
  40. function TSlowStream.Read(var Buffer; Count: Integer): Longint;
  41. begin
  42.   Result := inherited Read(Buffer, Count);
  43.   Sleep(Count div 2);
  44. end;
  45. procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
  46.   ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
  47. begin
  48.   AResponseInfo.ContentStream := TSlowStream.Create('C:/abc.txt', fmOpenRead);
  49. end;
  50. end.
在C盘下建立文本文件abc.txt,内容如下:
  1. sdasdasd
  2. <br>
  3. asdasd
  4. <br>
  5. <input type="text" value="aaa">
启动Delphi程序,访问如下的地址即可:  http://localhost:6001/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值