TsgcWebSocketServer_HTTPAPI | Send Text Response
Utilize o evento OnHTTPRequest para tratar as Requisições HTTP.
A classe THttpServerRequest contém os Dados da Requisição HTTP.
- Document: o Document que o peer está tentando acessar.
- Method: o método HTTP ('GET', 'POST', etc.)
- Headers: os cabeçalhos da requisição HTTP.
- AcceptEncoding: variável de accept encoding, exemplo: "gzip, deflate, br".
- ContentType: exemplo: "text/html"
- Content: conteúdo da requisição, se existir.
- QueryParams: os parâmetros de query.
- Cookies: os cookies, se existirem.
- ContentLength: tamanho do conteúdo.
- AuthExists, AuthUsername, AuthPassword: dados da requisição de autenticação.
- Stream: se a requisição http tem um corpo, este é o stream do corpo.
A classe THttpServerResponse contém os Dados da resposta HTTP.
- ContentText: é a resposta como texto.
- ContentType: exemplo: "text/html". Se você quiser codificar o ContentText com UTF8, defina o charset='utf-8'. Exemplo: text/html; charset=utf-8
- CustomHeaders: se você precisar enviar seus próprios cabeçalhos, utilize esta variável
- AuthRealm: se o servidor exigir autenticação, defina esta variável.
- ResponseNo: o número da resposta HTTP. Exemplo: 200 significa que a resposta foi bem-sucedida.
- ContentStream: se a resposta contém um stream, defina aqui (não libere o stream, ele será liberado automaticamente).
- FileName: se a resposta for um nome de arquivo, defina aqui o caminho completo do arquivo.
- Date, Expires, LastModified: variáveis de data e hora da resposta.
- CacheControl: permite personalizar o comportamento de cache.
Exemplo: se o servidor receber uma requisição GET pelo documento "/test.html", envia uma resposta OK; caso contrário, envia um 404 se for uma requisição GET por outro documento, ou erro 500 se for um método diferente.
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;