新建Webbroker項目:
選擇類型:
開始可以使用:Indy VCL Application 方便調試,完成后,再新建一個DLL 項目,引用業務單元。
示例代碼如下:
unit uDataModuleMain;
interface
uses
SysUtils, Classes, HTTPApp, HTTPProd;
type
TWebModule2 = class(TWebModule)
ppTest: TPageProducer;
procedure ppTestHTMLTag(Sender: TObject; Tag: TTag; const TagString: string;
TagParams: TStrings; var ReplaceText: string);
procedure WebModule2DefaultHandlerAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
WebModuleClass: TComponentClass = TWebModule2;
implementation
{$R *.dfm}
procedure TWebModule2.ppTestHTMLTag(Sender: TObject; Tag: TTag;
const TagString: string; TagParams: TStrings; var ReplaceText: string);
begin
Response.ContentType := 'text/html;charset="utf-8"';
try
if SameText(TagString, 'doctitle') then // TPageProducer組件的標記處理,指定 HTMLDoc 屬性 ,標記格式 <#flag>
ReplaceText := dm.GetTitle
else if SameText(TagString, 'docbody') then
ReplaceText := dm.GetBody
else
ReplaceText := '';
except
on E: Exception do
begin
ReplaceText := Format('ERROR! <#%s> raised %s: %s',
[TagString, E.ClassName, E.Message])
end
end;
end;
procedure TWebModule2.WebModule2DefaultHandlerAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
Response.ContentType := 'text/html;charset="utf-8"'; //指定編碼
Response.Content := 'WEB服務運行正常. ' + DateTimeToStr(Now);
// Request.QueryFields.Values['sid']; //查詢參數獲取
end;
end.