TsgcWebSocketServer_HTTPAPI | Tekstantwoord verzenden
Gebruik de gebeurtenis OnHTTPRequest om de HTTP-verzoeken af te handelen.
De klasse THttpServerRequest bevat de HTTP-verzoekgegevens.
- Document: het document dat de peer probeert te openen.
- Methode: de HTTP-methode ('GET', 'POST', enz.)
- Headers: de headers van het HTTP-verzoek.
- AcceptEncoding: variabele voor het accepteren van codering, voorbeeld: "gzip, deflate, br".
- ContentType: voorbeeld: "text/html"
- Content: inhoud van verzoek indien aanwezig.
- QueryParams: de queryparameters.
- Cookies: de cookies indien aanwezig.
- ContentLength: grootte van de inhoud.
- AuthExists, AuthUsername, AuthPassword: authenticatieverzoekgegevens.
- Stream: als het HTTP-verzoek een body heeft, is dit de stream van de body.
De klasse THttpServerResponse bevat de HTTP-responsgegevens.
- ContentText: is het antwoord als tekst.
- ContentType: voorbeeld: "text/html". Als u de ContentText met UTF8 wilt coderen, stel dan charset='utf-8' in. Voorbeeld: text/html; charset=utf-8
- CustomHeaders: als u uw eigen headers wilt versturen, gebruik dan deze variabele
- AuthRealm: als de server authenticatie vereist, stel dan deze variabele in.
- ResponseNo: het HTTP-antwoordnummer. Voorbeeld: 200 betekent dat het antwoord succesvol is.
- ContentStream: als de respons een stream bevat, stel deze hier in (de stream niet vrijgeven, dat gebeurt automatisch).
- FileName: als de respons een bestandsnaam is, stel hier het volledige pad naar de bestandsnaam in.
- Date, Expires, LastModified: datetime-variabelen van het antwoord.
- CacheControl: maakt het mogelijk het cachegedrag aan te passen.
Voorbeeld: als de server een GET-verzoek ontvangt voor het document "/test.html", stuur een OK-antwoord; anders stuur een 404 als het een GET-verzoek is voor een ander document, of fout 500 als het een andere methode is.
void __fastcall OnHTTPRequest(TsgcWSConnection_HTTPAPI *aConnection,
const THttpServerRequest *aRequestInfo,
THttpServerResponse *aResponseInfo)
{
if (aRequestInfo->Method == "GET")
{
if (aRequestInfo->Document == "/test.html")
{
aResponseInfo->ResponseNo = 200;
aResponseInfo->ContentText = "OK";
aResponseInfo->ContentType = "text/html; charset=UTF-8";
}
else
{
aResponseInfo->ResponseNo = 404;
}
}
else
{
aResponseInfo->ResponseNo = 500;
}
}