Delphi TWebModule(IIS-ISAPI):获取当前请求

时间:2017-03-18 09:34:16

标签: delphi delphi-10.1-berlin

TWebModule过程/函数中如何获取当前请求?

我试过了:

procedure TWebModule1.DoSomething;
var 
  aRequest : TWebRequest;
begin
  aRequest := Request;
end;

但似乎是TWebModule创建时产生的第一个请求。

我知道我能够将请求传递给每个TWebActionItem的后续过程/函数,但我希望避免在每个地方传递请求。有什么提示吗?

更新

在深入研究代码后,我找到了WebContext,它似乎是解决方案,例如:

uses Web.WebCntxt;

procedure TWebModule1.DoSomething;
var
  aRequest : TWebRequest;
begin
  if WebContext <> nil then
    aRequest := WebContext.Request;
end;

这是正确的方法吗? WebContext似乎总是nil

我正在使用德尔福柏林更新2。

1 个答案:

答案 0 :(得分:3)

每个请求都会经过TWebActionItem中定义的TWebModule.ActionsTWebActionItem有一个事件OnAction。在那里,您将获得当前请求的TWebRequest对象。

然后,您可以将其传递给后续的过程/函数。