|
|
Line 1,120: |
Line 1,120: |
| | | |
| | | |
− | '''HTTP buffer''' | + | '''HTTP helper classes''' |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | <code>THTTPBuffer = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPBuffer|<code>THTTPBuffer = class(TObject)</code>]] |
− | |-
| + | |
− | | <code>constructor Create(ASize:LongWord);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FData:Pointer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSize:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FStart:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Count:LongWord read GetCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure Clear;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReadData:Char;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteData(AChar:Char):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReadLock(var ASize:LongWord):Pointer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadUnlock(ACount:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function WriteLock(var ASize:LongWord):Pointer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteUnlock(ACount:LongWord):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| |
| | | |
− | '''HTTP parameter''' | + | '''HTTP common classes''' |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | <code>THTTPParam = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>constructor Create(const AName:String);</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FHash:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FValue:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read FName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Hash:LongWord read FHash;</code>
| + | |
− | |
| + | |
| |- | | |- |
− | | <code>property Value:String read FValue write FValue;</code> | + | | [[THTTPParam|<code>THTTPParam = class(TListObject)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP parameters'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPParams = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPParams|<code>THTTPParams = class(TObject)</code>]] |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FParams:TLinkedObjList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>procedure Clear;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetCount:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetParam(APrevious:THTTPParam):THTTPParam;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindParam(const AName:String):THTTPParam;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddParam(const AName,AValue:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteParam(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP header'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPHeader = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPHeader|<code>THTTPHeader = class(TListObject)</code>]] |
− | |-
| + | |
− | | <code>constructor Create(const AName:String);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FHash:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FValues:TLinkedStringList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read FName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Hash:LongWord read FHash;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetCount:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetValue(AIndex:Integer):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetValue(AIndex:Integer; const AValue:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindValue(const AValue:String):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddValue(const AValue:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteValue(const AValue:String):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP headers'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPHeaders = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPHeaders|<code>THTTPHeaders = class(TObject)</code>]] |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FHeaders:TLinkedObjList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>procedure Clear;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetCount:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetHeader(APrevious:THTTPHeader):THTTPHeader;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindHeader(const AName:String):THTTPHeader;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddHeader(const AName,AValue:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteHeader(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| |
| | | |
− | '''HTTP client request''' | + | '''HTTP client classes''' |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | <code>THTTPClientRequest = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPClientRequest|<code>THTTPClientRequest = class(TObject)</code>]] |
− | |-
| + | |
− | | <code>constructor Create(AClient:THTTPClient);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FFlags:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetLineSent:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetHeadersSent:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetContentSent:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FClient:THTTPClient;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>URL:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Method:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Version:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>Params:THTTPParams;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Headers:THTTPHeaders;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>Protocol:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Host:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Port:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Path:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Query:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>ContentStream:TStream;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>ContentString:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>RedirectCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Flags:LongWord read FFlags;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Client:THTTPClient read FClient;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property LineSent:Boolean read GetLineSent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property HeadersSent:Boolean read GetHeadersSent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ContentSent:Boolean read GetContentSent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Close:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Clear:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SetParam(const AName,AValue:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetParamEx(const AName,AValue:String; AReplace:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SetHeader(const AName,AValue:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetHeaderEx(const AName,AValue:String; AReplace:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function WriteRequest:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function WriteLine:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteHeaders:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteContentStream(AContent:TStream; ASize:LongWord; ACompleted:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteContentString(const AContent:String; ASize:LongWord; ACompleted:Boolean):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP client response'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPClientResponse = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPClientResponse|<code>THTTPClientResponse = class(TObject)</code>]] |
− | |-
| + | |
− | | <code>constructor Create(AClient:THTTPClient);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FFlags:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetContentReceived:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetNoCache:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetNoCache(ANoCache:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetConnectionClose:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetConnectionClose(AConnectionClose:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FClient:THTTPClient;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>Reason:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Status:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Version:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>Headers:THTTPHeaders;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Flags:LongWord read FFlags;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Client:THTTPClient read FClient;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property ContentReceived:Boolean read GetContentReceived;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property NoCache:Boolean read GetNoCache write SetNoCache;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ConnectionClose:Boolean read GetConnectionClose write SetConnectionClose;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Clear:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetHeader(const AName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetHeaderEx(const AName:String):TStringList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindHeader(const AName,AValue:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReadContentStream(AContent:TStream; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadContentString(var AContent:String; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP client'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPClient = class(TWinsock2TCPClient)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPClient|<code>THTTPClient = class(TWinsock2TCPClient)</code>]] |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FState:LongWord;</code>
| + | |
− | | Internal request state
| + | |
− | |-
| + | |
− | | <code>FBuffer:THTTPBuffer;</code>
| + | |
− | | Buffer for received data
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FRequest:THTTPClientRequest;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FResponse:THTTPClientResponse;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FTimeout:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FUserAgent:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAllowRedirect:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMaxRedirects:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FKeepAlive:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FKeepAliveTimeout:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FOnRedirect:THTTPRedirectEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FOnPassword:THTTPPasswordEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FHost:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPort:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FUsername:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPassword:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FProxyHost:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FProxyPort:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FProxyUsername:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FProxyPassword:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FURL:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMethod:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FVersion:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMimeType:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRangeStart:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRangeEnd:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FEncoding:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure SetTimeout(ATimeout:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetUserAgent:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetUserAgent(const AUserAgent:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAllowRedirect(AAllowRedirect:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetMaxRedirects(AMaxRedirects:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetKeepAlive(AKeepAlive:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetKeepAliveTimeout(AKeepAliveTimeout:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetHost:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetHost(const AHost:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPort:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetPort(const APort:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetUsername:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetUsername(const AUsername:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPassword:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetPassword(const APassword:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetProxyHost:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetProxyHost(const AProxyHost:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetProxyPort:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetProxyPort(const AProxyPort:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetProxyUsername:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetProxyUsername(const AProxyUsername:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetProxyPassword:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetProxyPassword(const AProxyPassword:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetURL:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetURL(const AURL:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetMethod(AMethod:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetVersion(AVersion:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMimeType:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetMimeType(const AMimeType:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetRangeStart(ARangeStart:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetRangeEnd(ARangeEnd:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetEncoding(AEncoding:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetResponseStatus:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetResponseReason:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetResponseVersion:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetResponseMimeType:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetResponseEncoding:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetResponseContentSize:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DoRedirect(const AURL:String; var ALocation:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DoPassword(var AUsername,APassword:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReadResponseLine(AResponse:THTTPClientResponse):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadResponseHeaders(AResponse:THTTPClientResponse):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadResponseContentStream(AResponse:THTTPClientResponse; AContent:TStream; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadResponseContentString(AResponse:THTTPClientResponse; var AContent:String; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function WriteRequestLine(ARequest:THTTPClientRequest):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteRequestHeaders(ARequest:THTTPClientRequest):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteRequestContentStream(ARequest:THTTPClientRequest; AContent:TStream; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteRequestContentString(ARequest:THTTPClientRequest; const AContent:String; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Request:THTTPClientRequest read FRequest;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Response:THTTPClientResponse read FResponse;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Timeout:LongWord read FTimeout write SetTimeout;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property UserAgent:String read GetUserAgent write SetUserAgent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AllowRedirect:Boolean read FAllowRedirect write SetAllowRedirect;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MaxRedirects:LongWord read FMaxRedirects write SetMaxRedirects;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property KeepAlive:Boolean read FKeepAlive write SetKeepAlive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property KeepAliveTimeout:LongWord read FKeepAliveTimeout write SetKeepAliveTimeout;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property OnRedirect:THTTPRedirectEvent read FOnRedirect write FOnRedirect;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property OnPassword:THTTPPasswordEvent read FOnPassword write FOnPassword;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Host:String read GetHost write SetHost;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Port:String read GetPort write SetPort;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Username:String read GetUsername write SetUsername;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Password:String read GetPassword write SetPassword;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property ProxyHost:String read GetProxyHost write SetProxyHost;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ProxyPort:String read GetProxyPort write SetProxyPort;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ProxyUsername:String read GetProxyUsername write SetProxyUsername;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ProxyPassword:String read GetProxyPassword write SetProxyPassword;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property RequestURL:String read GetURL write SetURL;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RequestMethod:LongWord read FMethod write SetMethod;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RequestVersion:LongWord read FVersion write SetVersion;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RequestMimeType:String read GetMimeType write SetMimeType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RequestRangeStart:LongWord read FRangeStart write SetRangeStart;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RequestRangeEnd:LongWord read FRangeEnd write SetRangeEnd;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RequestEncoding:LongWord read FEncoding write SetEncoding;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property ResponseStatus:LongWord read GetResponseStatus;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ResponseReason:String read GetResponseReason;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ResponseVersion:LongWord read GetResponseVersion;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ResponseMimeType:String read GetResponseMimeType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ResponseEncoding:LongWord read GetResponseEncoding;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ResponseContentSize:LongWord read GetResponseContentSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Head(const AURL:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetString(const AURL:String; var AContent:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetStream(const AURL:String; AContent:TStream):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function PostString(const AURL:String; var AContent:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PostStream(const AURL:String; AContent:TStream):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SendRequest:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CloseRequest(Close:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ClearRequest:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CancelRequest:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SetRequestParam(const AName,AValue:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetRequestParamEx(const AName,AValue:String; AReplace:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SetRequestHeader(const AName,AValue:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetRequestHeaderEx(const AName,AValue:String; AReplace:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SetRequestContentStream(AContent:TStream):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddRequestContentString(const AContent:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetRequestContentString(const AContent:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetResponseHeader(const AName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetResponseHeaderEx(const AName:String):TStringList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetResponseContentStream(AContent:TStream; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetResponseContentString(var AContent:String; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| |
− |
| |
− | '''HTTP server request'''
| |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | '''HTTP server classes''' |
| | | |
− | <code>THTTPServerRequest = class(TObject)</code>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPServerRequest|<code>THTTPServerRequest = class(TObject)</code>]] |
− | |-
| + | |
− | | <code>constructor Create(AThread:TWinsock2TCPServerThread);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FFlags:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FThread:TWinsock2TCPServerThread;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetContentReceived:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FListener:THTTPListener;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>URL:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Method:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Version:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>Params:THTTPParams;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Headers:THTTPHeaders;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>Protocol:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Host:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Port:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Path:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Query:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>BasePath:String;</code>
| + | |
− | | The base path of the document or alias matched to this request
| + | |
− | |-
| + | |
− | | <code>BaseHost:String;</code>
| + | |
− | | The base name of the host or alias matched to this request
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Flags:LongWord read FFlags;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Thread:TWinsock2TCPServerThread read FThread;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property ContentReceived:Boolean read GetContentReceived;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetParam(const AName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetHeader(const AName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetHeaderEx(const AName:String):TStringList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindHeader(const AName,AValue:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReadContentStream(AContent:TStream; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadContentString(var AContent:String; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP server response'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPServerResponse = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPServerResponse|<code>THTTPServerResponse = class(TObject)</code>]] |
− | |-
| + | |
− | | <code>constructor Create(AThread:TWinsock2TCPServerThread);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FFlags:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FThread:TWinsock2TCPServerThread;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetStatusSent:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetHeadersSent:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetContentSent:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetNoCache:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetNoCache(ANoCache:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetConnectionClose:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetConnectionClose(AConnectionClose:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FListener:THTTPListener;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>Reason:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Status:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Version:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>Headers:THTTPHeaders;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>ContentStream:TStream;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>ContentString:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Flags:LongWord read FFlags;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Thread:TWinsock2TCPServerThread read FThread;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property StatusSent:Boolean read GetStatusSent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property HeadersSent:Boolean read GetHeadersSent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ContentSent:Boolean read GetContentSent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property NoCache:Boolean read GetNoCache write SetNoCache;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ConnectionClose:Boolean read GetConnectionClose write SetConnectionClose;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SetHeader(const AName,AValue:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetHeaderEx(const AName,AValue:String; AReplace:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function WriteResponse:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function WriteStatus:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteHeaders:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteContentStream(AContent:TStream; ASize:LongWord; ACompleted:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteContentString(const AContent:String; ASize:LongWord; ACompleted:Boolean):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP host'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPHost = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPHost|<code>THTTPHost = class(TListObject)</code>]] |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FHash:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FFlags:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDefaultMimeType:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FErrors:TLinkedList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAliases:TLinkedList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FModules:TLinkedList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FDocuments:TLinkedList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMimeTypes:TLinkedList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FOnGet:THTTPHostEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FOnHead:THTTPHostEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FOnPost:THTTPHostEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FOnPut:THTTPHostEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FOnError:THTTPHostEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FOnRequest:THTTPHostEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FOnResponse:THTTPHostEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetName(const AName:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetFlags(AFlags:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDefaultMimeType:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetDefaultMimeType(const ADefaultMimeType:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetIsDefault:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetIsDefault(AIsDefault:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetIsDomain:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetIsDomain(AIsDomain:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MatchError(AStatus:LongWord):THTTPError; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MatchDocument(const AName:String; var AAlias:THTTPAlias):THTTPDocument; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DoGet(ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DoHead(ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DoPost(ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DoPut(ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DoError(ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DoRequest(ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DoResponse(ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName write SetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Hash:LongWord read FHash;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Flags:LongWord read FFlags write SetFlags;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property IsDefault:Boolean read GetIsDefault write SetIsDefault;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property IsDomain:Boolean read GetIsDomain write SetIsDomain;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property DefaultMimeType:String read GetDefaultMimeType write SetDefaultMimeType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property OnGet:THTTPHostEvent read FOnGet write FOnGet;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property OnHead:THTTPHostEvent read FOnHead write FOnHead;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property OnPost:THTTPHostEvent read FOnPost write FOnPost;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property OnPut:THTTPHostEvent read FOnPut write FOnPut;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property OnError:THTTPHostEvent read FOnError write FOnError;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property OnRequest:THTTPHostEvent read FOnRequest write FOnRequest;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property OnResponse:THTTPHostEvent read FOnResponse write FOnResponse;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindError(AStatus:LongWord):THTTPError;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RegisterError(AError:THTTPError):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeregisterError(AError:THTTPError):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindAlias(const AName:String):THTTPAlias;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MatchAlias(const AName:String):THTTPAlias; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RegisterAlias(AAlias:THTTPAlias):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeregisterAlias(AAlias:THTTPAlias):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetModule(APrevious:THTTPModule):THTTPModule;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindModule(AModule:THTTPModule):THTTPModule;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RegisterModule(AModule:THTTPModule):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeregisterModule(AModule:THTTPModule):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindDocument(const AName:String):THTTPDocument;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RegisterDocument(ADocument:THTTPDocument):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeregisterDocument(ADocument:THTTPDocument):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LoadMimeTypes:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindMimeType(const AExtension:String):THTTPMimeType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ResolveMimeType(const AExtension:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RegisterMimeType(AMimeType:THTTPMimeType):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeregisterMimeType(AMimeType:THTTPMimeType):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP error'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPError = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPError|<code>THTTPError = class(TListObject)</code>]] |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFlags:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FStatus:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FOnError:THTTPErrorEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure SetFlags(AFlags:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetStatus(AStatus:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetIsDefault:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetIsDefault(AIsDefault:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DoError(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Flags:LongWord read FFlags write SetFlags;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Status:LongWord read FStatus write SetStatus;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property IsDefault:Boolean read GetIsDefault write SetIsDefault;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property OnError:THTTPErrorEvent read FOnError write FOnError;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP alias'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPAlias = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPAlias|<code>THTTPAlias = class(TListObject)</code>]] |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FHash:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetName(const AName:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName write SetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Hash:LongWord read FHash;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP module'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPModule = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>constructor Create;</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFlags:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FOnRequest:THTTPModuleEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FOnResponse:THTTPModuleEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure SetFlags(AFlags:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DoRequest(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DoResponse(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Flags:LongWord read FFlags write SetFlags;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property OnRequest:THTTPModuleEvent read FOnRequest write FOnRequest;</code>
| + | |
− | |
| + | |
| |- | | |- |
− | | <code>property OnResponse:THTTPModuleEvent read FOnResponse write FOnResponse;</code> | + | | [[THTTPModule|<code>THTTPModule = class(TListObject)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP document'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPDocument = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPDocument|<code>THTTPDocument = class(TListObject)</code>]] |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FHash:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FFlags:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FAliases:TLinkedList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FOnGet:THTTPDocumentEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FOnHead:THTTPDocumentEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FOnPost:THTTPDocumentEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FOnPut:THTTPDocumentEvent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetName(const AName:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetFlags(AFlags:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetIsDefault:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetIsDefault(AIsDefault:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetIsFolder:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetIsFolder(AIsFolder:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetIsSubtree:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetIsSubtree(AIsSubtree:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetIsExtension:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetIsExtension(AIsExtension:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DoHead(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DoPost(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DoPut(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName write SetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Hash:LongWord read FHash;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Flags:LongWord read FFlags write SetFlags;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property IsDefault:Boolean read GetIsDefault write SetIsDefault;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property IsFolder:Boolean read GetIsFolder write SetIsFolder;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property IsSubtree:Boolean read GetIsSubtree write SetIsSubtree;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property IsExtension:Boolean read GetIsExtension write SetIsExtension;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property OnGet:THTTPDocumentEvent read FOnGet write FOnGet;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property OnHead:THTTPDocumentEvent read FOnHead write FOnHead;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property OnPost:THTTPDocumentEvent read FOnPost write FOnPost;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property OnPut:THTTPDocumentEvent read FOnPut write FOnPut;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindAlias(const AName:String):THTTPAlias;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MatchAlias(const AName:String):THTTPAlias; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RegisterAlias(AAlias:THTTPAlias):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeregisterAlias(AAlias:THTTPAlias):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP mime type'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPMimeType = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPMimeType|<code>THTTPMimeType = class(TListObject)</code>]] |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FExtension:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FHash:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMimeType:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetExtension:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetExtension(const AExtension:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMimeType:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetMimeType(const AMimeType:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Extension:String read GetExtension write SetExtension;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Hash:LongWord read FHash;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MimeType:String read GetMimeType write SetMimeType;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP redirect'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPRedirect = class(THTTPDocument)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPRedirect|<code>THTTPRedirect = class(THTTPDocument)</code>]] |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocation:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPermanent:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetLocation:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetLocation(const ALocation:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetPermanent(APermanent:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Location:String read GetLocation write SetLocation;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Permanent:Boolean read FPermanent write SetPermanent;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP folder'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPFolder = class(THTTPDocument)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPFolder|<code>THTTPFolder = class(THTTPDocument)</code>]] |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FFolder:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FIndexPage:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAllowCache:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAllowListing:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAllowSubtree:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetFolder:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetFolder(const AFolder:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetIndexPage:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetIndexPage(const AIndexPage:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAllowCache(AAllowCache:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAllowListing(AAllowListing:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAllowSubtree(AAllowSubtree:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DoHead(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DoGetFile(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse; const AFile:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DoGetFolder(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse; const AFolder:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Folder:String read GetFolder write SetFolder;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property IndexPage:String read GetIndexPage write SetIndexPage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AllowCache:Boolean read FAllowCache write SetAllowCache;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AllowListing:Boolean read FAllowListing write SetAllowListing;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AllowSubtree:Boolean read FAllowSubtree write SetAllowSubtree;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP file'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPFile = class(THTTPDocument)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[THTTPFile|<code>THTTPFile = class(THTTPDocument)</code>]] |
− | |-
| + | |
− | | <code>constructor Create;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FFilename:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAllowCache:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetFilename:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetFilename(const AFilename:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAllowCache(AAllowCache:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DoHead(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Filename:String read GetFilename write SetFilename;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AllowCache:Boolean read FAllowCache write SetAllowCache;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''HTTP listener'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THTTPListener = class(TWinsock2TCPListener)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>constructor Create;</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FHost:THTTPHost;</code>
| + | |
− | | Default Host
| + | |
− | |-
| + | |
− | | <code>FHosts:TLinkedList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FServer:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetServer:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetServer(const AServer:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure DoConnect(AThread:TWinsock2TCPServerThread); override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure DoDisconnect(AThread:TWinsock2TCPServerThread); override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DoExecute(AThread:TWinsock2TCPServerThread):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MatchHost(const AName:String; var AAlias:THTTPAlias):THTTPHost;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetRequestLine(AThread:TWinsock2TCPServerThread; ARequest:THTTPServerRequest):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRequestHeaders(AThread:TWinsock2TCPServerThread; ARequest:THTTPServerRequest):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRequestContentStream(AThread:TWinsock2TCPServerThread; ARequest:THTTPServerRequest; AContent:TStream; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRequestContentString(AThread:TWinsock2TCPServerThread; ARequest:THTTPServerRequest; var AContent:String; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SendResponseLine(AThread:TWinsock2TCPServerThread; AResponse:THTTPServerResponse):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SendResponseHeaders(AThread:TWinsock2TCPServerThread; AResponse:THTTPServerResponse):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SendResponseContentStream(AThread:TWinsock2TCPServerThread; AResponse:THTTPServerResponse; AContent:TStream; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SendResponseContentString(AThread:TWinsock2TCPServerThread; AResponse:THTTPServerResponse; const AContent:String; ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Server:String read GetServer write SetServer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindHost(const AName:String):THTTPHost;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RegisterHost(AHost:THTTPHost):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeregisterHost(AHost:THTTPHost):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindError(const AHost:String; AStatus:LongWord):THTTPError;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RegisterError(const AHost:String; AError:THTTPError):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeregisterError(const AHost:String; AError:THTTPError):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetModule(const AHost:String; APrevious:THTTPModule):THTTPModule;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindModule(const AHost:String; AModule:THTTPModule):THTTPModule;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RegisterModule(const AHost:String; AModule:THTTPModule):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeregisterModule(const AHost:String; AModule:THTTPModule):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindDocument(const AHost,AName:String):THTTPDocument;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RegisterDocument(const AHost:String; ADocument:THTTPDocument):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeregisterDocument(const AHost:String; ADocument:THTTPDocument):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LoadMimeTypes(const AHost:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindMimeType(const AHost,AExtension:String):THTTPMimeType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ResolveMimeType(const AHost,AExtension:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RegisterMimeType(const AHost:String; AMimeType:THTTPMimeType):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
− | | <code>function DeregisterMimeType(const AHost:String; AMimeType:THTTPMimeType):Boolean;</code> | + | | [[THTTPListener|<code>THTTPListener = class(TWinsock2TCPListener)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| |
| <br /> | | <br /> |
| | | |