Compartilhar via


Função HttpOpenRequestA (wininet.h)

Cria um identificador de solicitação HTTP.

Sintaxe

HINTERNET HttpOpenRequestA(
  [in] HINTERNET hConnect,
  [in] LPCSTR    lpszVerb,
  [in] LPCSTR    lpszObjectName,
  [in] LPCSTR    lpszVersion,
  [in] LPCSTR    lpszReferrer,
  [in] LPCSTR    *lplpszAcceptTypes,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

Parâmetros

[in] hConnect

Um identificador para uma sessão HTTP retornada por InternetConnect.

[in] lpszVerb

Um ponteiro para um cadeia de caracteresterminada nula que contém o verbo HTTP a ser usado na solicitação. Se esse parâmetro for NULL, a função usará GET como o verbo HTTP.

[in] lpszObjectName

Um ponteiro para um cadeia de caracteresterminada nula que contém o nome do objeto de destino do verbo HTTP especificado. Geralmente, esse é um nome de arquivo, um módulo executável ou um especificador de pesquisa.

[in] lpszVersion

Um ponteiro para um cadeia de caracteresterminada nula que contém a versão HTTP a ser usada na solicitação. As configurações no Internet Explorer substituirão o valor especificado neste parâmetro.

Se esse parâmetro for NULL, a função usará uma versão HTTP de 1.1 ou 1.0, dependendo do valor das configurações do Internet Explorer.

Valor Significado
HTTP/1.0
HTTP versão 1.0
HTTP/1.1
HTTP versão 1.1

[in] lpszReferrer

Um ponteiro para um cadeia de caracteresterminada nula que especifica a URL do documento do qual a URL na solicitação (lpszObjectName) foi obtida. Se esse parâmetro for NULL, nenhum referenciador será especificado.

[in] lplpszAcceptTypes

Um ponteiro para um matriz nulade cadeias de caracteres que indica os tipos de mídia aceitos pelo cliente. Aqui está um exemplo.

PCTSTR rgpszAcceptTypes[] = {_T("text/*"), NULL};

Falha ao encerrar corretamente a matriz com um ponteiro NULL causará uma falha.

Se esse parâmetro for NULL, nenhum tipo será aceito pelo cliente. Os servidores geralmente interpretam a falta de tipos de aceitação para indicar que o cliente aceita apenas documentos do tipo "text/*" (ou seja, somente documentos de texto — sem imagens ou outros arquivos binários).

[in] dwFlags

Opções de Internet. Esse parâmetro pode ser qualquer um dos valores a seguir.

Valor Significado
INTERNET_FLAG_CACHE_IF_NET_FAIL
Retorna o recurso do cache se a solicitação de rede do recurso falhar devido a um ERROR_INTERNET_CONNECTION_RESET (a conexão com o servidor foi redefinida) ou ERROR_INTERNET_CANNOT_CONNECT (falha na tentativa de conexão com o servidor).
INTERNET_FLAG_HYPERLINK
Força um recarregamento se não houver tempo expirado e nenhum tempo LastModified retornado do servidor ao determinar se o item deve ser recarregado da rede.
INTERNET_FLAG_IGNORE_CERT_CN_INVALID
Desabilita a verificação de certificados baseados em SSL/PCT que são retornados do servidor em relação ao nome do host fornecido na solicitação. As funções WinINet usam uma verificação simples em relação aos certificados comparando nomes de host correspondentes e regras simples de curinga.
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
Desabilita a verificação de certificados baseados em SSL/PCT para datas de validade adequadas.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
Desabilita a detecção desse tipo especial de redirecionamento. Quando esse sinalizador é usado, as funções WinINet permitem redirecionamentos de HTTPS para URLs HTTP.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
Desabilita a detecção desse tipo especial de redirecionamento. Quando esse sinalizador é usado, as funções WinINet permitem redirecionamentos de HTTP para URLs HTTPS.
INTERNET_FLAG_KEEP_CONNECTION
Usa semântica keep-alive, se disponível, para a conexão. Esse sinalizador é necessário para MSN (Microsoft Network), NT LAN Manager (NTLM) e outros tipos de autenticação.
INTERNET_FLAG_NEED_FILE
Faz com que um arquivo temporário seja criado se o arquivo não puder ser armazenado em cache.
INTERNET_FLAG_NO_AUTH
Não tenta a autenticação automaticamente.
INTERNET_FLAG_NO_AUTO_REDIRECT
Não manipula automaticamente o redirecionamento em HttpSendRequest .
INTERNET_FLAG_NO_CACHE_WRITE
Não adiciona a entidade retornada ao cache.
INTERNET_FLAG_NO_COOKIES
Não adiciona cabeçalhos de cookie automaticamente às solicitações e não adiciona automaticamente cookies retornados ao banco de dados de cookie.
INTERNET_FLAG_NO_UI
Desabilita a caixa de diálogo cookie.
INTERNET_FLAG_PRAGMA_NOCACHE
Força a solicitação a ser resolvida pelo servidor de origem, mesmo que exista uma cópia armazenada em cache no proxy.
INTERNET_FLAG_RELOAD
Força um download da listagem de arquivo, objeto ou diretório solicitado do servidor de origem, não do cache.
INTERNET_FLAG_RESYNCHRONIZE
Recarrega recursos HTTP se o recurso tiver sido modificado desde a última vez em que foi baixado. Todos os recursos FTP são recarregados.

Windows XP e Windows Server 2003 R2 e anteriores: recursos do Gopher também são recarregados.

INTERNET_FLAG_SECURE
Usa semântica de transação segura. Isso se traduz no uso da SSL/PCT (Secure Sockets Layer/Private Communications Technology) e só é significativo em solicitações HTTP.

[in] dwContext

Um ponteiro para uma variável que contém o valor definido pelo aplicativo que associa essa operação a qualquer dado do aplicativo.

Valor de retorno

Retorna um identificador de solicitação HTTP se tiver êxito ou NULL caso contrário. Para recuperar informações de erro estendidas, chame GetLastError.

Observações

A função HttpOpenRequest cria um novo identificador de solicitação HTTP e armazena os parâmetros especificados nesse identificador. Um identificador de solicitação HTTP contém uma solicitação a ser enviada a um servidor HTTP e contém todos os cabeçalhos RFC822/MIME/HTTP a serem enviados como parte da solicitação.

Se um verbo diferente de "GET" ou "POST" for especificado, HttpOpenRequest definirá automaticamente INTERNET_FLAG_NO_CACHE_WRITE e INTERNET_FLAG_RELOAD para a solicitação.

Com o Microsoft Internet Explorer 5 e posterior, se lpszVerb estiver definido como "HEAD", o cabeçalho Comprimento do Conteúdo será ignorado em respostas de servidores HTTP/1.1.

No Windows 7, Windows Server 2008 R2 e posterior, o parâmetro lpszVersion é substituído pelas configurações do Internet Explorer. O EnableHttp1_1 é um valor de registro em HKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE controlado pelas Opções de Internet definidas no Internet Explorer para o sistema. O valor de EnableHttp1_1 padrão é 1. A função HttpOpenRequest atualizará qualquer versão HTTP menor que 1.1 para HTTP versão 1.1 se EnableHttp1_1 estiver definida como 1.

Depois que o aplicativo de chamada terminar de usar o identificador HINTERNET retornado por HttpOpenRequest, ele deverá ser fechado usando a função InternetCloseHandle.

Observação quando uma solicitação é enviada no modo assíncrono (o parâmetro dwFlags de InternetOpen especifica INTERNET_FLAG_ASYNC) e o parâmetro dwContext é zero (INTERNET_NO_CALLBACK), a função de retorno de chamada definida com InternetSetStatusCallback no identificador de solicitação não será invocada, no entanto, a chamada ainda será executada no modo assíncrono.

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 HttpOpenRequest 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