Contents - Methods - Properties
ISAPI request parameters incapsulation
Description
Created by TISAPIApp for every incoming request.
Contents - TFRISAPIRequest - Properties
~TFRISAPIRequest
DestructorCreateC++ declaration
__fastcall virtual ~TFRISAPIRequest(void)
Description
Normally you should not free TFRISAPIRequest objects, it will be done by TISAPIApp.
ConstructorCreateCookiesListDelphi declaration
constructor Create(pECB: PEXTENSION_CONTROL_BLOCK);
Description
Normally you should not create TFRISAPIRequest objects, it will be created by TISAPIApp for every request.
Delphi declarationCreateParamsList
procedure CreateCookiesList;
C++ declaration
void __fastcall CreateCookiesList(void)
Delphi declarationCreatePathList
procedure CreateParamsList;
C++ declaration
void __fastcall CreateParamsList(void)
Delphi declarationDestroy
procedure CreatePathList;
C++ declaration
void __fastcall CreatePathList(void)
DestructorGetCookieByNameDelphi declaration
destructor Destroy;
Description
Normally you should not free TFRISAPIRequest objects, it will be done by TISAPIApp.
Delphi declarationGetCookiesList
function GetCookieByName(CookieName: AnsiString): AnsiString;
C++ declaration
System::AnsiString __fastcall GetCookieByName(System::AnsiString CookieName)
Delphi declarationGetCookieValuesList
function GetCookiesList: TStringList;
C++ declaration
Classes::TStringList *__fastcall GetCookiesList(void)
Delphi declarationGetHttpMethod
function GetCookieValuesList(sCookieName: AnsiString): TStringList;
C++ declaration
Classes::TStringList *__fastcall GetCookieValuesList(System::AnsiString sCookieName)
Delphi declarationGetParamNameValuesList
function GetHttpMethod: AnsiString;
C++ declaration
System::AnsiString __fastcall GetHttpMethod(void)
Delphi declarationGetParamsList
function GetParamNameValuesList(slSource: TStringList; ParamName: AnsiString): TStringList;
C++ declaration
Classes::TStringList *__fastcall GetParamNameValuesList(Classes::TStringList *slSource, System::AnsiString ParamName)
Delphi declarationGetPathInfo
function GetParamsList: TStringList;
C++ declaration
Classes::TStringList *__fastcall GetParamsList(void)
Delphi declarationGetPathList
function GetPathInfo: AnsiString;
C++ declaration
System::AnsiString __fastcall GetPathInfo(void)
Delphi declarationGetQueryParamByName
function GetPathList: TStringList;
C++ declaration
Classes::TStringList *__fastcall GetPathList(void)
Delphi declarationGetQueryParamValuesList
function GetQueryParamByName(ParamName: AnsiString): AnsiString;
C++ declaration
System::AnsiString __fastcall GetQueryParamByName(System::AnsiString ParamName)
Delphi declarationGetServerVariable
function GetQueryParamValuesList(ParamName: AnsiString): TStringList;
C++ declaration
Classes::TStringList *__fastcall GetQueryParamValuesList(System::AnsiString ParamName)
Delphi declarationHttpDecodeURLEncoded
function GetServerVariable(sVariableName: AnsiString): AnsiString;
C++ declaration
System::AnsiString __fastcall GetServerVariable(System::AnsiString sVariableName)
Delphi declarationHttpParseVariables
function HttpDecodeURLEncoded(sSource: AnsiString): AnsiString;
C++ declaration
System::AnsiString __fastcall HttpDecodeURLEncoded(System::AnsiString sSource)
Delphi declarationLock
procedure HttpParseVariables(sSource: AnsiString; KeyList: TStringList; cSeparator: Char; bTrimLeft: Boolean);
C++ declaration
void __fastcall HttpParseVariables(System::AnsiString sSource, Classes::TStringList *KeyList, char cSeparator, bool bTrimLeft)
Locking before a thread-unsafe operationMapURLToPathDelphi declaration
procedure Lock;
C++ declaration
void __fastcall Lock(void)
Description
Must always call UnLock to release the lock.The preferred method is TFRISAPIApp.Lock, because this lock will automatically be freed in case of exceptions.
Actually, this is a shortcut to TFRISAPIApp.Lock, plus IsLocked flag is set.
Translate URL to local physical path (calls ISAPI server function HSE_REQUEST_MAP_URL_TO_PATH)TFRISAPIRequestDelphi declaration
function MapURLToPath(const sURL: string): string;
C++ declaration
System::AnsiString __fastcall MapURLToPath(const System::AnsiString sURL)
Description
For example: URL '/scripts/myisapi1.dll',may result in something like 'C:myisapi1.dll'.
Depends on the server!
ConstructorUnLockC++ declaration
__fastcall TFRISAPIRequest(Isapi::PEXTENSION_CONTROL_BLOCK pECB)
Description
Normally you should not create TFRISAPIRequest objects, it will be created by TISAPIApp for every request.
Unlocking after a thread-unsafe operationWriteLogDelphi declaration
procedure UnLock;
C++ declaration
void __fastcall UnLock(void)
Description
Flag IsLocked will be set to FALSE as well.
Write string to logfileWriteLogExDelphi declaration
function WriteLog(LogString: AnsiString): Boolean;
C++ declaration
bool __fastcall WriteLog(System::AnsiString LogString)
Description
For debugging purposes.
Write exception class name and error text to logfileDelphi declaration
function WriteLogEx(E: Exception): Boolean;
C++ declaration
bool __fastcall WriteLogEx(Sysutils::Exception *E)
Description
For debugging purposes.
Contents - TFRISAPIRequest - Methods
CookiesList
Request cookies listCookieValueDelphi declaration
property CookiesList: TStringList read GetCookiesList;
C++ declaration
__property Classes::TStringList *CookiesList={ read=GetCookiesList, nodefault }
Description
Contains recieved cookies in the form <CookieName>=<CookieValue>, extracted from the server variable 'HTTP_COOKIE'.
Request cookie value by nameCookieValuesDelphi declaration
property CookieValue[CookieName: AnsiString]: AnsiString read GetCookieByName;
C++ declaration
__property System::AnsiString CookieValue[System::AnsiString CookieName]={ read=GetCookieByName }
Description
Extracts the cookie value from the cookies list.
Request cookie values list by cookie nameDebugStringDelphi declaration
property CookieValues[sCookieName: AnsiString]: TStringList read GetCookieValuesList;
C++ declaration
__property Classes::TStringList *CookieValues[System::AnsiString sCookieName]={ read=GetCookieValuesList }
Description
Usable in case multiple cookies may have the same name.
Debug stringDispatcherDelphi declaration
DebugString: AnsiString;
C++ declaration
System::AnsiString DebugString
Description
For debugging purposes.This string will be added to logfile in the case of an unhandled exception.
Current dispatcherECBDelphi declaration
property Dispatcher: TISAPIDispatcher read FDispatcher;
C++ declaration
__property TISAPIDispatcher *Dispatcher={ read=FDispatcher, nodefault }
Description
Use it to call the required Dispatcher methods.
ISAPI Extension Control Block of the current requestHandledDelphi declaration
property ECB: PEXTENSION_CONTROL_BLOCK read FECB;
C++ declaration
__property Isapi::PEXTENSION_CONTROL_BLOCK ECB={ read=FECB, nodefault }
Description
From server.
Request handledHttpMethodDelphi declaration
property Handled: Boolean read FHandled write FHandled;
C++ declaration
__property bool Handled={ read=FHandled, write=FHandled, nodefault }
Description
Shows that the request is handled.Default FALSE.
Request methodIsLockedDelphi declaration
property HttpMethod: AnsiString read GetHttpMethod;
C++ declaration
__property System::AnsiString HttpMethod={ read=GetHttpMethod, nodefault }
Description
Value is taken from the ECB.lpszMethod.Can be 'GET', 'POST', 'HEAD' etc.
Shows that this request runs currently in a locked stateParamsListDelphi declaration
property IsLocked: Boolean read FLocked;
C++ declaration
__property bool IsLocked={ read=FLocked, nodefault }
Description
Internally used in exception handling for unlock.
Request params listPathInfoDelphi declaration
property ParamsList: TStringList read GetParamsList;
C++ declaration
__property Classes::TStringList *ParamsList={ read=GetParamsList, nodefault }
Description
Contains request parameters in the form <ParamName>=<ParamValue>.Params are extracted from ECB.lpbData (if HTTPMethod is 'POST') or from ECB.lpszQueryString ('GET', 'HEAD').
For example, URL 'http://www.myserver.net/scripts/myisapi1.dll/abc/def?Param1=Hello&Param2=1':
then ParamsList->Strings[0] = 'Param1=Hello' and ParamsList->Strings[1] = 'Param2=1'.
Request pathinfoPathListDelphi declaration
property PathInfo: AnsiString read GetPathInfo;
C++ declaration
__property System::AnsiString PathInfo={ read=GetPathInfo, nodefault }
Description
Value is taken from ECB.lpszPathInfo.For example: URL 'http://www.myserver.net/scripts/myisapi1.dll/abc/def?Param1=Hello&Param2=1',
then PathInfo = '/abc/def'.
Request subpaths listQueryParamDelphi declaration
property PathList: TStringList read GetPathList;
C++ declaration
__property Classes::TStringList *PathList={ read=GetPathList, nodefault }
Description
Contains subpaths list extracted from PathInfo.PathList->Strings[0] used by the dispatcher to find appropriate actionitem.
For example, URL 'http://www.myserver.net/scripts/myisapi1.dll/abc/def?Param1=Hello&Param2=1':
then PathList->Strings[0] = 'abc' and PathList->Strings[1] = 'def'.
Request parameter value by parameter nameQueryParamsDelphi declaration
property QueryParam[ParamName: AnsiString]: AnsiString read GetQueryParamByName;
C++ declaration
__property System::AnsiString QueryParam[System::AnsiString ParamName]={ read=GetQueryParamByName }
Description
Extracts the parameter value from ParamsList.
Request parameter values list by parameter nameServerVariableDelphi declaration
property QueryParams[ParamName: AnsiString]: TStringList read GetQueryParamValuesList;
C++ declaration
__property Classes::TStringList *QueryParams[System::AnsiString ParamName]={ read=GetQueryParamValuesList }
Description
Usable if multiple parameters have the same name.
Getting server variable value by variable nameDelphi declaration
property ServerVariable[sVariableName: AnsiString]: AnsiString read GetServerVariable;
C++ declaration
__property System::AnsiString ServerVariable[System::AnsiString sVariableName]={ read=GetServerVariable }
Description
Parameter 'SCRIPT_NAME' returns URL to this DLL.Example: URL 'http://www.myserver.net/scripts/myisapi1.dll/abc/def?Param1=Hello&Param2=1',
'SCRIPT_NAME' = '/scripts/myisapi1.dll'
Results may vary depending on the server.