Partager via


Méthode IWinHttpRequest::GetAllResponseHeaders

La méthode GetAllResponseHeaders récupère tous les en-têtes de réponse HTTP.

Syntaxe

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

Paramètres

En-têtes [out, retval]

Reçoit les informations d’en-tête obtenues.

Valeur retournée

La valeur de retour est S_OK en cas de réussite ou une valeur d’erreur dans le cas contraire.

Notes

Cette méthode retourne tous les en-têtes contenus dans la réponse du serveur la plus récente. Les en-têtes individuels sont délimités par une combinaison de retour chariot et de saut de ligne (ASCII 13 et 10). La dernière entrée est suivie de deux délimiteurs (13, 10, 13, 10). Appelez cette méthode uniquement après l’appel de la méthode Send .

Notes

Pour Windows XP et Windows 2000, consultez la section Conditions requises pour l’exécution de la page de démarrage WinHTTP.

Exemples

L’exemple suivant montre comment ouvrir une connexion HTTP, envoyer une requête HTTP et obtenir tous les en-têtes de la réponse. Cet exemple doit être exécuté à partir d’une invite de commandes.

#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;
}

L’exemple de script suivant montre comment ouvrir une connexion HTTP, envoyer une requête HTTP et obtenir tous les en-têtes de la réponse.

// 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());

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows XP, Windows 2000 Professionnel avec SP3 [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2003, Windows 2000 Server avec SP3 [applications de bureau uniquement]
Composant redistribuable
WinHTTP 5.0 et Internet Explorer 5.01 ou version ultérieure sur Windows XP et Windows 2000.
IDL
HttpRequest.idl
Bibliothèque
Winhttp.lib
DLL
Winhttp.dll

Voir aussi

IWinHttpRequest

WinHttpRequest

GetResponseHeader

WinHTTP Versions