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 |
|
Bibliothèque |
|
DLL |
|