TsgcWebSocketServer_HTTPAPI | Invio di una risposta di testo
Utilizzi l'evento OnHTTPRequest per gestire le richieste HTTP.
La classe THttpServerRequest contiene i dati della richiesta HTTP.
- Documento: il documento a cui il peer sta cercando di accedere.
- Metodo: il metodo HTTP ('GET', 'POST', ecc.)
- Headers: le intestazioni della richiesta HTTP.
- AcceptEncoding: variabile di codifica accettata, esempio: "gzip, deflate, br".
- ContentType: esempio: "text/html"
- Content: contenuto della richiesta, se presente.
- QueryParams: i parametri della query.
- Cookies: i cookie, se presenti.
- ContentLength: dimensione del contenuto.
- AuthExists, AuthUsername, AuthPassword: dati della richiesta di autenticazione.
- Stream: se la richiesta HTTP ha un corpo, questo è lo stream del corpo.
La classe THttpServerResponse contiene i dati della risposta HTTP.
- ContentText: è la risposta come testo.
- ContentType: esempio: "text/html". Se si desidera codificare ContentText con UTF8, impostare charset='utf-8'. Esempio: text/html; charset=utf-8
- CustomHeaders: se ha bisogno di inviare intestazioni personalizzate, utilizzi questa variabile
- AuthRealm: se il server richiede l'autenticazione, imposti questa variabile.
- ResponseNo: il numero della risposta HTTP. Esempio: 200 significa che la risposta ha avuto successo.
- ContentStream: se la risposta contiene uno stream, impostarlo qui (non liberare lo stream, verrà liberato automaticamente).
- FileName: se la risposta è un nome di file, impostare qui il percorso completo del file.
- Date, Expires, LastModified: variabili datetime della risposta.
- CacheControl: consente di personalizzare il comportamento della cache.
Esempio: se il server riceve una richiesta GET per il documento "/test.html", invia una risposta OK; altrimenti invia un 404 se si tratta di una richiesta GET per un altro documento, o un errore 500 se si tratta di un metodo diverso.
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;