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

Delphi IdHttp组件+IdHttpServer组件实现文件下载服务

发布时间:2020-12-15 09:57:20 所属栏目:大数据 来源:网络整理
导读:uses idhttp,IdHTTPServer; //idhttp组件提交下载请求 procedure TVodService.Button3Click(Sender: TObject);? var? ? ? h:TIdhttp;? ? ? MyStream:TMemoryStream;? ? ? url:string; begin? ? ? MyStream:=TMemoryStream.Create;? ? ? h:=Tidhttp.Create(ni
uses idhttp,IdHTTPServer;


//idhttp组件提交下载请求
procedure TVodService.Button3Click(Sender: TObject);?
var?
? ? h:TIdhttp;?
? ? MyStream:TMemoryStream;?
? ? url:string;
begin?
? ? MyStream:=TMemoryStream.Create;?
? ? h:=Tidhttp.Create(nil);?
? ? url:='http://192.168.0.254:9003/GetIni';//请求地址 ? ? ??
? ? try?
? ? ? ? h.get(url,MyStream);//提交请求 ? ? except ??
? ? ? ? Application.Messagebox('网络出错,请检查网络连接','出错框',MB_OK+MB_ICONERROR) ;
? ? ? ? MyStream.Free;
? ? ? ? h.free;?
? ? ? ? exit;?
? ? end;?
? ? MyStream.SaveToFile(extractfilepath(application.exename)+'System.ini');?
? ? MyStream.Free;?
? ? h.free;
end;


//IdHttpSever组件响应请求
procedure TVodService.DataModuleCreate(Sender: TObject);//初始化IdHttpServer组件
var
? ? hport:integer;
? ? Binding : TIdSocketHandle;
begin
? ? try
? ? ? ? VodHttpServer.Bindings.Clear;
? ? ? ? Binding := VodHttpServer.Bindings.Add;
? ? ? ? Binding.Port:=9003;
? ? ? ? binding.IP:='192.168.0.254';
? ? ? ? VodHttpServer.Active:=true;
? ? except
? ? ? ? on e:Exception do
? ? ? ? ? ? begin
? ? ? ? ? ? ? ? ?FrmMain_VodSer.write_Logfile('加载APP设置error '+e.message);
? ? ? ? ? ? end;
? ? end;
end;?




procedure TVodService.VodHttpServerCommandGet(AThread: TIdPeerThread;
? ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);//响应请求
var
? ? ByteSent: Cardinal;
? ? LocalDoc:string;
? ? tempstr,ips:string;
? ? len,sport:integer;
begin
? ? tempstr:=ARequestInfo.Document; //获取请求字符串
? ? ips:=TIdIOHandlerSocket(AThread.Connection.IOHandler).Binding.PeerIP;//获取请求地址
? ? sport:=TIdIOHandlerSocket(AThread.Connection.IOHandler).Binding.PeerPort;//获取请求端口
? ? if fileexists(extractfilepath(application.exename)+'System.ini') then
? ? begin
? ? ? ? LocalDoc:=extractfilepath(application.exename)+'System.ini';
? ? ? ? ByteSent :=VodHttpServer.ServeFile(AThread,AResponseInfo,LocalDoc);
? ? end else
? ? begin
? ? ? ? Application.Messagebox('没有找到文件System.ini!','提示框',MB_OK+MB_ICONERROR) ;
? ? end;
end;
<span style="font-family:Arial,Helvetica,sans-serif;"><span style="white-space: normal;">
</span></span>

(编辑:李大同)

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

    推荐文章
      热点阅读