Delphi XE3 DataSnap Server中的访问请求标头

时间:2012-12-26 22:57:49

标签: delphi datasnap delphi-xe3

我在Delphi XE3中实现了一个REST服务器API(大约十年来第一次使用Delphi,所以有点生疏)。目前它使用Indy服务器进行调试,但最终它将是一个ISAPI DLL。

现在我已经实现了许多TDSServerClass类,并希望在类方法中访问请求头。因此,例如当用户请求mysite.com/datasnap/rest/foo/bar时,我希望能够在名为bar的foo类方法中读取标头。这可能吗?

如果没有,是否可以在进入REST类方法之前创建传入请求的全局过滤器?我需要检查传入请求的API密钥和用户身份验证,而不确定实现的最佳方法。感谢。

1 个答案:

答案 0 :(得分:2)

我不知道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;