9

概要: Delphi Soap Serverアプリケーションで元のTWebRequestオブジェクトにアクセスするにはどうすればよいですか?

ITest私のWebサービスは、次のメソッドを使用してサービスを公開しています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 に答える