9

摘要:如何在 Delphi Soap 服务器应用程序中访问原始TWebRequest对象?

我的网络服务ITest使用方法发布服务CallMe

ITest = interface(IInvokable)
['{AA226176-FFAD-488F-8768-99E706450F31}']
  function CallMe: string; stdcall;
end;
...
initialization
InvRegistry.RegisterInterface(TypeInfo(ITest));

这个接口在一个类中实现:

TTest = class(TInvokableClass, ITest)
public
  function CallMe: string; stdcall;
end;
...
initialization
InvRegistry.RegisterInvokableClass(TTest, TestFactory);

如何访问TWebRequest此方法实现内部的原始对象?例如,如果我想检查设置了哪些 cookie,或者读取请求中的其他属性:

function TTest.CallMe: string;
begin
  // how to access TWebRequest object
  ...
end;
4

1 回答 1

6
uses
  System.SysUtils,
  Web.HTTPApp,
  Soap.WebBrokerSOAP;

function TTest.CallMe: string;
var
  WebDispatcher: IWebDispatcherAccess;
begin
  Result := '';
  if Supports(GetSOAPWebModule, IWebDispatcherAccess, WebDispatcher) then
    Result := Format('You are calling me from: %s', [WebDispatcher.Request.RemoteIP]);
end;
于 2012-05-02T08:03:32.837 回答