Méthode IWinHttpRequest::GetResponseHeader
La méthode GetResponseHeader récupère les en-têtes de réponse HTTP.
Syntaxe
HRESULT GetResponseHeader(
[in] BSTR Header,
[out, retval] BSTR *Value
);
Paramètres
-
En-tête [in]
-
Spécifie le nom d’en-tête qui ne respecte pas la casse.
-
Valeur [out, retval]
-
Reçoit les informations d’en-tête obtenues.
Valeur retournée
La valeur de retour est S_OK sur la réussite ou une valeur d’erreur dans le cas contraire.
Notes
Cette méthode retourne la valeur de l’en-tête de réponse nommé dans En-tête. N’oubliez pas que les clients Automation, tels que le script, obtiennent les données d’en-tête comme valeur de retour de l’appel de fonction, et non par le biais d’un paramètre de fonction. 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 d’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 l’en-tête de date à partir 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()
{
// 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.
BSTR bstrName = SysAllocString(L"Date");
hr = pIWinHttpRequest->GetResponseHeader(bstrName,
&bstrResponse);
}
if (SUCCEEDED(hr))
{
// Print response to 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 l’en-tête de date à partir 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();
// Display the date header.
WScript.Echo( WinHttpReq.GetResponseHeader("Date"));
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 |
|