TsgcWebSocketServer_HTTPAPI | Textantwort senden
Verwenden Sie das Ereignis OnHTTPRequest , um die HTTP-Anfragen zu behandeln.
Die Klasse THttpServerRequest enthält die HTTP-Request-Daten.
- Document: das Dokument, auf das der Peer zuzugreifen versucht.
- Method: die HTTP-Methode ('GET', 'POST' usw.)
- Headers: die Header der HTTP-Anfrage.
- AcceptEncoding: Accept-Encoding-Variable, Beispiel: "gzip, deflate, br".
- ContentType: Beispiel: "text/html"
- Content: Inhalt der Anfrage, falls vorhanden.
- QueryParams: die Query-Parameter.
- Cookies: die Cookies, falls vorhanden.
- ContentLength: Größe des Inhalts.
- AuthExists, AuthUsername, AuthPassword: Authentifizierungsanfragedaten.
- Stream: wenn die HTTP-Anfrage einen Body hat, ist dies der Stream des Bodys.
Die Klasse THttpServerResponse enthält die HTTP-Antwortdaten.
- ContentText: ist die Antwort als Text.
- ContentType: Beispiel: "text/html". Wenn Sie den ContentText mit UTF8 kodieren möchten, setzen Sie charset='utf-8'. Beispiel: text/html; charset=utf-8
- CustomHeaders: wenn Sie Ihre eigenen Header senden müssen, verwenden Sie diese Variable
- AuthRealm: wenn der Server eine Authentifizierung erfordert, setzen Sie diese Variable.
- ResponseNo: die HTTP-Antwortnummer. Beispiel: 200 bedeutet, dass die Antwort erfolgreich ist.
- ContentStream: Wenn die Antwort einen Stream enthält, setzen Sie ihn hier (geben Sie den Stream nicht frei, er wird automatisch freigegeben).
- FileName: wenn die Antwort ein Dateiname ist, geben Sie hier den vollständigen Pfad zum Dateinamen an.
- Date, Expires, LastModified: Datetime-Variablen der Antwort.
- CacheControl: ermöglicht das Anpassen des Cache-Verhaltens.
Beispiel: Wenn der Server einen GET-Request für das Dokument "/test.html" empfängt, wird eine OK-Response gesendet; andernfalls wird ein 404 gesendet, wenn es ein GET-Request für ein anderes Dokument ist, oder Fehler 500, wenn es eine andere Methode ist.
procedure OnHTTPRequest(aConnection: TsgcWSConnection_HTTPAPI;
const aRequestInfo: THttpServerRequest;
var aResponseInfo: THttpServerResponse);
begin
if aRequestInfo.Method = 'GET' then
begin
if aRequestInfo.Document = '/test.html' then
begin
aResponseInfo.ResponseNo := 200;
aResponseInfo.ContentText := 'OK';
aResponseInfo.ContentType := 'text/html; charset=UTF-8';
end
else
aResponseInfo.ResponseNo := 404;
end
else
aResponseInfo.ResponseNo := 500;
end;