加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi httpserver 使用方法

发布时间:2020-12-15 09:57:19 所属栏目:大数据 来源:网络整理
导读:unit main; interface uses ? Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, ? Dialogs,IdBaseComponent,IdContext,IdComponent,IdCustomTCPServer,IdCustomHTTPServer,u5b8bu4f53; font-size:16px"> ? IdHTTPServer,StdCtrls; type
unit main;

interface
uses
? Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
? Dialogs,IdBaseComponent,IdContext,IdComponent,IdCustomTCPServer,IdCustomHTTPServer,u5b8bu4f53; font-size:16px"> ? IdHTTPServer,StdCtrls;
type
? TForm_main = class(TForm)
? ? IdHTTPServer1: TIdHTTPServer;
? ? Button_StartServer: TButton;
? ? Edit_Port: TEdit;
? ? Label1: TLabel;
? ? Label2: TLabel;
? ? Edit_Ip: TEdit;
? ? Button_stop: TButton;
? ? Label3: TLabel;
? ? Edit_RootDir: TEdit;
? ? Edit_index: TEdit;
? ? Label4: TLabel;
? ? procedure Button_StartServerClick(Sender: TObject);
? ? procedure Button_stopClick(Sender: TObject);
? ? procedure IdHTTPServer1CommandGet(AContext: TIdContext;
? ? ? ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
? private
? ? { Private declarations }
? public
? ? { Public declarations }
? end;
var
? Form_main: TForm_main;
implementation
RootDir:string;
URL:string;
{$R *.dfm}
procedure TForm_main.Button_StartServerClick(Sender: TObject);
begin
? try
? ? IdHTTPServer1.Bindings.Clear;
? //要绑定的端口,一定设置此项,这是真正要绑定的端口;
? ? IdHTTPServer1.DefaultPort:=strtoint(trim(edit_port.Text));
? ? IdHTTPServer1.Bindings.Add.IP := trim(edit_Ip.Text);
? ? ? ? //启动服务器
? ? IdHTTPServer1.Active := True;
? except
? ? ?showmessage('启动失败!');
? RootDir:=trim(edit_rootDir.Text);
? URL:='http://'+trim(edit_Ip.Text)+trim(edit_port.Text)+'/';
end;
procedure TForm_main.Button_stopClick(Sender: TObject);
? IdHTTPServer1.Active := false;
procedure TForm_main.IdHTTPServer1CommandGet(AContext: TIdContext;
? ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
? LFilename: string;
? LPathname: string;
? zhongwen:string;
//浏览器请求http://127.0.0.1:8008/index.html?a=1&b=2
? //ARequestInfo.Document ?返回 ? ?/index.html
? //ARequestInfo.QueryParams 返回 ?a=1b=2
? //ARequestInfo.Params.Values['name'] ? 接收get,post过来的数据
? ////webserver发文件
? {LFilename := ARequestInfo.Document;
? if LFilename = '/' then
? begin
? ? LFilename := '/'+trim(edit_index.Text);
? LPathname := RootDir + LFilename;
? if FileExists(LPathname) then begin
? ? ? AResponseInfo.ContentStream := TFileStream.Create(LPathname,fmOpenRead + fmShareDenyWrite);//发文件
? end
? else
? ? ? AResponseInfo.ResponseNo := 404;
? ? ? AResponseInfo.ContentText := '找不到' + ARequestInfo.Document;
? end; }
? ?//发html文件
? ?{AResponseInfo.ContentEncoding:='utf-8';
? ?AResponseInfo.ContentType :='text/html';
? ?AResponseInfo.ContentText:='<html><body>好</body></html>'; }
? ?//发xml文件
? ?{AResponseInfo.ContentType :='text/xml';
? ?AResponseInfo.ContentText:='<?xml version="1.0" encoding="utf-8"?>'
? ?+'<students>'
? ?+'<student sex = "male"><name>'+AnsiToUtf8('陈')+'</name><age>14</age></student>'
? ?+'<student sex = "female"><name>bb</name><age>16</age></student>'
? ?+'</students>';}
? ?//下载文件时,直接从网页打开而没有弹出保存对话框的问题解决
//AResponseInfo.CustomHeaders.Values['Content-Disposition'] :='attachment; filename="'+文件名+'"';
//替换 IIS
? {AResponseInfo.Server:='IIS/6.0';
? AResponseInfo.CacheControl:='no-cache';
? AResponseInfo.Pragma:='no-cache';
? AResponseInfo.Date:=Now;}
end.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读