Compartilhar via


Função HttpSendRequestA (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 HttpSendRequestA(
  [in] HINTERNET hRequest,
  [in] LPCSTR    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 um cadeia de caracteresterminada nula 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 terminada 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.

Valor de retorno

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

Observações

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 de 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 httpSendRequesthttpSendRequestA (usado com builds ANSI) e HttpSendRequestW (usado com builds Unicode). Se dwHeadersLength for -1L e lpszHeaders não estiver NULL, o seguinte acontecerá: se HttpSendRequestA for chamado, a função pressupõe que lpszHeaders é encerrado zero (ASCIIZ) e o comprimento é calculado. Se HttpSendRequestW for chamado, a função falhará com ERROR_INVALID_PARAMETER.

Observação a função HttpSendRequestA representa cabeçalhos como caracteres ISO-8859-1 e não caracteres 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.
 
Assim como todos os outros aspectos da API WinINet, essa função não pode ser chamada com segurança de dentro do DllMain ou dos construtores e destruidores de objetos globais.
Observaçã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 ou serviços de servidor, use do Microsoft Windows HTTP Services (WinHTTP).
 

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho wininet.h
biblioteca Wininet.lib
de DLL Wininet.dll

Consulte também

sessões HTTP

do WinINet Functions