5

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

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

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

4

1 回答 1

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;
于 2012-12-30T15:48:47.137 回答