在Delphi XE3 DataSnap服务器的访问请求头(Access Request Heade

2019-07-17 14:40发布

我实现在Delphi XE3一个REST API服务器(在大约十年使用Delphi的第一次那么我有点生锈)。 目前,它正在使用用于调试的Indy服务器,但最终这将是一个ISAPI DLL。

现在我已经实现了一些TDSServerClass类的,想在类方法中访问请求头。 因此,例如,当用户请求mysite.com/datasnap/rest/foo/bar我希望能够读取叫巴Foo类方法中的头。 这可能吗?

如果没有,是有可能创造传入请求的全局过滤唱到REST类方法之前? 我需要检查传入的请求,并不能确定实施的最佳途径API密钥和用户身份验证。 谢谢。

Answer 1:

我不知道如果有什么在XE3改变,但在XE2你可以做到以下几点:

uses
  Web.HTTPApp,
  Datasnap.DSHTTPWebBroker;

function TServerMethods1.EchoString(Value: string): string;
var
  Module: TWebModule;
begin
  Module := GetDataSnapWebModule;
  Result := Module.Request.RemoteIP + ': ' + Value;
end;


文章来源: Access Request Header in Delphi XE3 DataSnap Server