2012-05-01 29 views
7

Podsumowanie: Jak uzyskać dostęp do oryginalnego obiektu TWebRequest w aplikacji serwera Soap firmy Delphi?Uzyskiwanie dostępu do oryginalnego obiektu TWebRequest na serwerze SOAP Delphi

Mój serwis internetowy publikuje serwis ITest z metodą CallMe:

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

Interfejs ten jest realizowany w klasie:

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

Jak uzyskać dostęp do oryginalnego TWebRequest obiekt wewnątrz realizacji tej metody? Na przykład. Jeśli chcę sprawdzić co ciasteczka zostały ustawione, lub przeczytać inne właściwości na życzenie:

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

Odpowiedz

4
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; 
+0

Świetna odpowiedź - Dziękujemy :) –

Powiązane problemy