Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Normalmente, as tarefas do servidor HTTP são executadas em uma ordem específica; ou seja, uma tarefa deve ser concluída e a saída obtida antes do início da próxima tarefa.
Uma página de tarefas é criada para apresentar código de exemplo sobre tarefas específicas que um aplicativo HTTP Server executa. Uma página de tarefa vincula-se ao arquivo de extensão C do exemplo de servidor HTTP. Quando você instala o PSDK na unidade C:\ de um computador local, o aplicativo de exemplo de servidor completo é instalado em C:\Program Files\Microsoft SDK\Samples\netds\http\server.
A lista a seguir identifica as tarefas do Servidor HTTP:
- inicializar o serviço HTTP
- Registrar as URLs para ouvir em
- ligar para a rotina para receber uma solicitação
- receber o pedido
- manipular a solicitação HTTP
- Enviar a resposta HTTP
- Enviar a resposta HTTP POST
- limpar a API do servidor HTTP
Inicializar o serviço HTTP
O serviço HTTP é inicializado usando a funçãoHttpInitializee o identificador para a fila de solicitações é criado usando HttpCreateHttpHandle. O servidor deve ser inicializado antes que qualquer outra função do servidor possa ser chamada. A fila de solicitações deve ser criada antes que o serviço possa registrar URLs para ouvir solicitações HTTP de entrada.
Para obter mais informações e um exemplo de código, consulte inicializar o serviço HTTP.
Registre os URLs para ouvir
Para que a API do Servidor HTTP escute as solicitações de entrada, URLs específicas são registradas com a API chamando a funçãoHttpAddUrl. As solicitações de entrada que correspondem a essas URLs são roteadas para a fila de solicitações especificada nesta chamada.
Para obter mais informações e um exemplo de código, consulte Registrar as URLs para ouvir em.
Ligue para a rotina para receber uma solicitação
A função DoReceiveRequest aloca o buffer de solicitação, inicializa a ID da solicitação e inicia o loop para receber solicitações.
Para obter mais informações e um exemplo de código, consulte chamar a rotina para receber uma solicitação.
Receba o Pedido
A API do Servidor HTTP fornece uma estrutura de solicitação para armazenar a solicitação de entrada analisada. Essa estrutura é alocada pelo aplicativo e inicializada quando uma solicitação de entrada é recebida. O aplicativo chama a funçãoHttpReceiveHttpRequest para receber a solicitação. Se o buffer de solicitação for muito pequeno para receber a solicitação, o aplicativo poderá aumentar o tamanho do buffer e chamar HttpReceiveHttpRequest novamente para receber a solicitação inteira.
Para obter mais informações e um exemplo de código, consulte Receber uma solicitação.
Manipular a solicitação HTTP
O aplicativo de exemplo mostra como manipular os verbos de solicitação HTTP GET e POST. O aplicativo envia um erro 503 (NOT_IMPLEMENTED) se verbos estão presentes na solicitação que o aplicativo não manipula.
Observe que a URL a ser usada no tratamento de solicitações é a URL processada contida no CookedUrl membro da estrutura HTTP_REQUEST_V1. Não faça o URL não processado no membro do pRawUrl, que é exclusivamente para fins estatísticos e de rastreamento.
Para obter mais informações e um exemplo de código, consulte manipular a solicitação HTTP.
Enviar a resposta HTTP
A estrutura de resposta é alocada e inicializada com o código de status e uma frase de razão na macro INITIALIZE_HTTP_RESPONSE. Um cabeçalho HTTP conhecido é adicionado à estrutura de resposta na macro ADD_KNOWN_HEADER e o corpo da entidade é adicionado à resposta de um bloco de dados da memória. A função HttpSendHttpResponse é chamada para enviar a resposta. Neste exemplo, o aplicativo envia uma resposta simples de 200 OK para a solicitação GET.
Para obter mais informações e um exemplo de código, consulte Enviar uma resposta HTTP.
Enviar a resposta HTTP POST
A solicitação POST requer mais processamento do que a solicitação GET. O corpo da entidade de solicitação é recebido chamando a funçãoHttpReceiveRequestEntityBody. O aplicativo envia a resposta e o corpo da entidade de resposta em chamadas separadas para a API do servidor HTTP. Os cabeçalhos de resposta são enviados com o HttpSendHttpResponse. O corpo da entidade é enviado em um bloco de dados de um identificador de arquivo com a funçãoHttpSendResponseEntityBody.
Para obter mais informações e um exemplo de código, consulte Enviar uma resposta HTTP POST.
Limpar a API do servidor HTTP
As operações de limpeza para a API do Servidor HTTP incluem:
- Remoção de todos os URLs registados.
- Fechando o identificador para a fila de solicitações.
- Encerrando os recursos criados pela API do Servidor HTTP.
O aplicativo chama a função HttpRemoveUrl para cancelar o registro de URLs registrados pela funçãoinicialHttpAddUrl. O aplicativo também chama HttpTerminate para cada chamada para HttpInitialize com configurações de sinalizador correspondentes. Esta chamada encerra todos os recursos criados pela chamada para HttpInitialize.
Para obter mais informações e um exemplo de código, consulte Cleanup the HTTP Server API.