TsgcWebSocketServer_HTTPAPI | Envoyer une réponse texte
Utilisez l'événement OnHTTPRequest pour gérer les requêtes HTTP.
La classe THttpServerRequest contient les données de requête HTTP.
- Document : le Document auquel le pair tente d'accéder.
- Method : la méthode HTTP ('GET', 'POST', etc.)
- Headers : les en-têtes de la requête HTTP.
- AcceptEncoding: variable d'encodage accepté, exemple : "gzip, deflate, br".
- ContentType : exemple : « text/html »
- Content : contenu de la requête s'il existe.
- QueryParams: les paramètres de requête.
- Cookies : les cookies s'ils existent.
- ContentLength : taille du contenu.
- AuthExists, AuthUsername, AuthPassword : données de la demande d'authentification.
- Stream : si la requête http a un corps, c'est le flux du corps.
La classe THttpServerResponse contient les données de réponse HTTP.
- ContentText : est la réponse sous forme de texte.
- ContentType : exemple : "text/html". Si vous souhaitez encoder le ContentText avec UTF8, définissez charset='utf-8'. Exemple : text/html; charset=utf-8
- CustomHeaders : si vous devez envoyer vos propres en-têtes, utilisez cette variable
- AuthRealm : si le serveur nécessite une authentification, définissez cette variable.
- ResponseNo : le numéro de réponse HTTP. Exemple : 200 signifie que la réponse est réussie.
- ContentStream : si la réponse contient un flux, définissez-le ici (ne libérez pas le flux, il sera libéré automatiquement).
- FileName : si la réponse est un nom de fichier, définissez ici le chemin complet vers le fichier.
- Date, Expires, LastModified : variables datetime de la réponse.
- CacheControl : permet de personnaliser le comportement du cache.
Exemple : si le serveur reçoit une requête GET pour le document "/test.html", envoyer une réponse OK ; sinon envoyer un 404 si c'est une requête GET pour un autre document, ou l'erreur 500 s'il s'agit d'une méthode différente.
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;