Função HttpSendRequestW (wininet.h)

Envia a solicitação especificada para o servidor HTTP, permitindo que os chamadores enviem dados extras além do que normalmente é passado para HttpSendRequestEx.

Sintaxe

BOOL HttpSendRequestW(
  [in] HINTERNET hRequest,
  [in] LPCWSTR   lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] LPVOID    lpOptional,
  [in] DWORD     dwOptionalLength
);

Parâmetros

[in] hRequest

Um identificador retornado por uma chamada para a função HttpOpenRequest .

[in] lpszHeaders

Um ponteiro para uma cadeia de caracteres terminada em nulo que contém os cabeçalhos adicionais a serem acrescentados à solicitação. Esse parâmetro poderá ser NULL se não houver cabeçalhos adicionais a serem acrescentados.

[in] dwHeadersLength

O tamanho dos cabeçalhos adicionais, em TCHARs. Se esse parâmetro for -1L e lpszHeaders não for NULL, a função pressupõe que lpszHeaders seja terminado como zero (ASCIIZ) e o comprimento será calculado. Consulte Comentários para obter detalhes.

[in] lpOptional

Um ponteiro para um buffer que contém quaisquer dados opcionais a serem enviados imediatamente após os cabeçalhos de solicitação. Esse parâmetro geralmente é usado para operações POST e PUT. Os dados opcionais podem ser o recurso ou as informações que estão sendo postadas no servidor. Esse parâmetro poderá ser NULL se não houver dados opcionais a serem enviados.

[in] dwOptionalLength

O tamanho dos dados opcionais, em bytes. Esse parâmetro poderá ser zero se não houver dados opcionais a serem enviados.

Retornar valor

Retornará TRUE se tiver êxito ou FALSE caso contrário. Para obter informações de erro estendidas, chame GetLastError.

Comentários

HttpSendRequest envia a solicitação especificada para o servidor HTTP e permite que o cliente especifique cabeçalhos adicionais para enviar junto com a solicitação.

A função também permite que o cliente especifique dados opcionais para enviar ao servidor HTTP imediatamente após os cabeçalhos de solicitação. Esse recurso geralmente é usado para operações de "gravação", como PUT e POST.

Depois que a solicitação é enviada, o código status e os cabeçalhos de resposta do servidor HTTP são lidos. Esses cabeçalhos são mantidos internamente e estão disponíveis para aplicativos cliente por meio da função HttpQueryInfo .

Um aplicativo pode usar o mesmo identificador de solicitação HTTP em várias chamadas para HttpSendRequest, mas o aplicativo deve ler todos os dados retornados da chamada anterior antes de chamar a função novamente.

No modo offline, HttpSendRequest retornará ERROR_FILE_NOT_FOUND se o recurso não for encontrado no cache da Internet.

Há duas versões de HttpSendRequest: HttpSendRequestA (usada com builds ANSI) e HttpSendRequestW (usada com builds Unicode). Se dwHeadersLength for -1L e lpszHeaders não for NULL, o seguinte acontecerá: se HttpSendRequestA for chamado, a função pressupõe que lpszHeaders seja terminado com zero (ASCIIZ) e o comprimento será calculado. Se HttpSendRequestW for chamado, a função falhará com ERROR_INVALID_PARAMETER.

Nota A função HttpSendRequestA representa cabeçalhos como caracteres ISO-8859-1 e não ANSI. A função HttpSendRequestW representa cabeçalhos como caracteres ISO-8859-1 convertidos em caracteres UTF-16LE. Como resultado, nunca é seguro usar a função HttpSendRequestW quando os cabeçalhos a serem adicionados podem conter caracteres não ASCII. Em vez disso, um aplicativo pode usar as funções MultiByteToWideChar e WideCharToMultiByte com um parâmetro Codepage definido como 28591 para mapear entre caracteres ANSI e caracteres UTF-16LE.
 
Como todos os outros aspectos da API WinINet, essa função não pode ser chamada com segurança de dentro de DllMain ou dos construtores e destruidores de objetos globais.
Nota O WinINet não dá suporte a implementações de servidor. Além disso, ele não deve ser usado de um serviço. Para implementações de servidor ou serviços, use Os Serviços HTTP do Microsoft Windows (WinHTTP).
 

Observação

O cabeçalho wininet.h define HttpSendRequest como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wininet.h
Biblioteca Wininet.lib
DLL Wininet.dll

Confira também

Sessões HTTP

Funções WinINet