IWinHttpRequest :: WaitForResponse, méthode
La méthode WaitForResponse attend la fin d’une méthode d' envoi asynchrone, avec une valeur de délai d’attente facultative, en secondes.
Syntaxe
HRESULT WaitForResponse(
[in, optional] VARIANT Timeout,
[out, retval] VARIANT_BOOL *Succeeded
);
Paramètres
-
Délai d’expiration [ dans, facultatif]
-
Valeur du délai d’attente, en secondes. Le délai d’attente par défaut est infini. Pour définir explicitement le délai d’attente sur Infinite, utilisez la valeur-1.
-
Opération réussie [ out, retval]
-
Reçoit l’une des valeurs suivantes.
Valeur Signification - VARIANTE _ true
Une réponse a été reçue. - VARIANTE _ false
Le délai d’attente spécifié a été dépassé.
Valeur de retour
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 interrompt l’exécution en attendant une réponse à une requête asynchrone. Cette méthode doit être appelée après un envoi. L’appel d’applications peut spécifier une valeur de délai d’attente facultative, en secondes. Si cette méthode expire, la demande n’est pas abandonnée. De cette façon, l’application appelante peut continuer à attendre la demande, le cas échéant, dans un appel ultérieur à cette méthode.
L’appel de cette propriété après une méthode d' envoi synchrone retourne immédiatement et n’a aucun effet.
Notes
pour Windows XP et Windows 2000, consultez la section configuration requise pour l’exécution de la Page de démarrage de WinHTTP.
Exemples
L’exemple suivant montre comment ouvrir une connexion HTTP asynchrone, envoyer une requête HTTP, attendre la réponse et lire le texte de la réponse.
#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 varTrue;
VARIANT varEmpty;
CLSID clsid;
VariantInit(&varTrue);
V_VT(&varTrue) = VT_BOOL;
V_BOOL(&varTrue) = VARIANT_TRUE;
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, varTrue);
SysFreeString(bstrMethod);
SysFreeString(bstrUrl);
}
if (SUCCEEDED(hr))
{ // Send Request.
hr = pIWinHttpRequest->Send(varEmpty);
}
if (SUCCEEDED(hr))
{ // Wait for response.
VARIANT_BOOL varResult;
hr = pIWinHttpRequest->WaitForResponse(varEmpty, &varResult);
}
if (SUCCEEDED(hr))
{ // Get Response text.
hr = pIWinHttpRequest->get_ResponseText(&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 asynchrone, envoyer une requête HTTP, attendre une réponse et lire le texte 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", true);
// Send the HTTP request.
WinHttpReq.Send();
// Wait for the response.
WinHttpReq.WaitForResponse();
// Display the response text.
WScript.Echo( WinHttpReq.ResponseText);
Spécifications
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Windows XP, Windows 2000 Professional avec les [ applications de bureau SP3 uniquement] |
| Serveur minimal pris en charge |
Windows server 2003, Windows 2000 server avec des [ applications de bureau SP3 uniquement] |
| Composant redistribuable |
WinHTTP 5,0 et Internet Explorer 5,01 ou version ultérieure sur Windows XP et Windows 2000. |
| MIDL |
|
| Bibliothèque |
|
| DLL |
|