Compartilhar via


Método IWinHttpRequest::GetAllResponseHeaders

O método GetAllResponseHeaders recupera todos os cabeçalhos de resposta HTTP.

Sintaxe

HRESULT GetAllResponseHeaders(
  [out, retval] BSTR *Headers
);

Parâmetros

Cabeçalhos [out, retval]

Recebe as informações de cabeçalho resultantes.

Valor retornado

Caso contrário, o valor retornado será S_OK com êxito ou um valor de erro.

Comentários

Esse método retorna todos os cabeçalhos contidos na resposta mais recente do servidor. Os cabeçalhos individuais são delimitados por uma combinação de retorno de carro e alimentação de linha (ASCII 13 e 10). A última entrada é seguida por dois delimitadores (13, 10, 13, 10). Invoque esse método somente depois que o método Send tiver sido chamado.

Observação

Para Windows XP e Windows 2000, consulte a seção Requisitos de tempo de execução da página inicial do WinHTTP.

Exemplos

O exemplo a seguir mostra como abrir uma conexão HTTP, enviar uma solicitação HTTP e obter todos os cabeçalhos da resposta. Este exemplo deve ser executado em um prompt de comando.

#include <windows.h>
#include <stdio.h>
#include <objbase.h>

#include "httprequest.h"

#pragma comment(lib, "ole32.lib")
#pragma comment(lib, "oleaut32.lib")

// IID for IWinHttpRequest.
const IID IID_IWinHttpRequest =
{
  0x06f29373,
  0x5c5a,
  0x4b54,
  {0xb0, 0x25, 0x6e, 0xf1, 0xbf, 0x8a, 0xbf, 0x0e}
};

int main(int argc, char* argv[])
{
    UNREFERENCED_PARAMETER(argc);
    UNREFERENCED_PARAMETER(argv);

    // Variable for return value
    HRESULT    hr;

    // Initialize COM
    hr = CoInitialize( NULL );

    IWinHttpRequest *  pIWinHttpRequest = NULL;

    BSTR            bstrResponse = NULL;
    VARIANT         varFalse;
    VARIANT         varEmpty;

    CLSID           clsid;

    VariantInit(&varFalse);
    V_VT(&varFalse)   = VT_BOOL;
    V_BOOL(&varFalse) = VARIANT_FALSE;

    VariantInit(&varEmpty);
    V_VT(&varEmpty) = VT_ERROR;

    hr = CLSIDFromProgID(L"WinHttp.WinHttpRequest.5.1", &clsid);

    if (SUCCEEDED(hr))
    {
        hr = CoCreateInstance(clsid, NULL,
                              CLSCTX_INPROC_SERVER,
                              IID_IWinHttpRequest,
                              (void **)&pIWinHttpRequest);
    }
    if (SUCCEEDED(hr))
    {    // Open WinHttpRequest.
        BSTR bstrMethod  = SysAllocString(L"GET");
        BSTR bstrUrl = SysAllocString(L"https://microsoft.com");
        hr = pIWinHttpRequest->Open(bstrMethod, bstrUrl, varFalse);
        SysFreeString(bstrMethod);
        SysFreeString(bstrUrl);
    }
    if (SUCCEEDED(hr))
    {    // Send Request.
        hr = pIWinHttpRequest->Send(varEmpty);
    }
    if (SUCCEEDED(hr))
    {    // Get Response text.
        hr = pIWinHttpRequest->GetAllResponseHeaders(&bstrResponse);
    }
    if (SUCCEEDED(hr))
    {    // Print the response to a console.
        wprintf(L"%.256s",bstrResponse);
    }

    // Release memory.
    if (pIWinHttpRequest)
        pIWinHttpRequest->Release();
    if (bstrResponse)
        SysFreeString(bstrResponse);

    CoUninitialize();
    return 0;
}

O exemplo de script a seguir mostra como abrir uma conexão HTTP, enviar uma solicitação HTTP e obter todos os cabeçalhos da resposta.

// Instantiate a WinHttpRequest object.
var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");

// Initialize an HTTP request.  
WinHttpReq.Open("GET", "https://www.microsoft.com", false);

// Send the HTTP request.
WinHttpReq.Send(); 

// Get all response headers.
WScript.Echo( WinHttpReq.GetAllResponseHeaders());

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows XP, Windows 2000 Professional com SP3 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2003, Windows 2000 Server com SP3 [somente aplicativos da área de trabalho]
Redistribuível
WinHTTP 5.0 e Internet Explorer 5.01 ou posterior no Windows XP e Windows 2000.
IDL
HttpRequest.idl
Biblioteca
Winhttp.lib
DLL
Winhttp.dll

Confira também

IWinHttpRequest

WinHttpRequest

Getresponseheader

Versões do WinHTTP