TFPHttpServer

TFPHttpServer

TFPHttpServer是lazarus自带的http服务端控件。laZARUS可以用它来开发中间件。

uses  fphttpserver

复制代码
procedure TfpHttpSVR.request(Sender: TObject; var ARequest: TFPHTTPConnectionRequest;
  var AResponse: TFPHTTPConnectionResponse);
// /rest/units/qry/{accountno}/{key}
var
  arr: tstringarray;
begin
  AResponse.CustomHeaders.Add('Access-Control-Allow-Origin:*');  //cross domain
  arr := ARequest.URL.Split(['/']);
  if arr[1] = 'rest' then
     AResponse.ContentType := 'application/json; charset=UTF-8'    //ContentType
  else if arr[1] = 'pb' then
    AResponse.ContentType := 'application/octet-stream; charset=UTF-8'; //ContentType
  handlefunc(ARequest, AResponse, '/rest/tables/qry', @rest.test2.tablesQry);
  handlefunc(ARequest, AResponse, '/rest/goods/qry', @rest.test2.goodsQry);
  handlefunc(ARequest, AResponse, '/rest/units/edit', @rest.test2.unitsEdit);
  handlefunc(ARequest, AResponse, '/rest/units/add', @rest.test2.unitsAdd);
  handlefunc(ARequest, AResponse, '/rest/units/delete', @rest.test2.unitsDel);
  handlefunc(ARequest, AResponse, '/pb/tables/qry', @pb.test.tablesQry);
  handlefunc(ARequest, AResponse, '/pb/units/add', @pb.test.unitsAdd);
  handlefunc(ARequest, AResponse, '/pb/units/edit', @pb.test.unitsEdit);
  handlefunc(ARequest, AResponse, '/pb/units/delete', @pb.test.unitsDel);
end;                                                   
复制代码
复制代码
procedure TWebModul.DoHandleRequest(Sender: TObject;  var ARequest: TFPHTTPConnectionRequest;  var AResponse: TFPHTTPConnectionResponse);
var
  file1: TMemoryStream;
begin
  file1 := TMemoryStream.Create;
  {...}
  if {ARequest.ContentFields.Values=} true
    then
      begin
        fromspreadsheet(file1);  //from the spreadsheet unit
 
        AResponse.FreeContentStream:= true;
        AResponse.ContentStream :=file1;
        AResponse.ContentType:=htmlcontenttype('.html');  //:='text/html;charset=utf-8'
        AResponse.Code:=200;
        AResponse.SendContent;
      end;
  {...}
  file1.Free;
 
end;
复制代码

 

posted @   delphi中间件  阅读(448)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2020-03-09 开发unigui控件
2019-03-09 咏南中间件支持图形验证码
2018-03-09 DELPHI开发LINUX桌面程序
2017-03-09 咏南APP(手机)开发框架
2016-03-09 DELPHI新版本WEBSERVICE的变化
2016-03-09 泛型字典
2016-03-09 泛型队列
点击右上角即可分享
微信分享提示