Méthode IWinHttpRequest::Open
La méthode Open ouvre une connexion HTTP à une ressource HTTP.
Syntaxe
HRESULT Open(
[in] BSTR Method,
[in] BSTR Url,
[in, optional] VARIANT Async
);
Paramètres
-
Méthode [in]
-
Spécifie le verbe HTTP utilisé pour la méthode Open , tel que « GET » ou « PUT ». Utilisez toujours des majuscules, car certains serveurs ignorent les verbes HTTPminuscules.
-
URL [in]
-
Spécifie le nom de la ressource. Il doit s’agir d’une URL absolue.
-
Async [in, facultatif]
-
Indique s’il faut ouvrir en mode asynchrone.
Valeur Signification - VARIANT_FALSE
Ouvre la connexion HTTP en mode synchrone. Un appel à Envoyer ne retourne pas tant que WinHTTP n’a pas entièrement reçu la réponse. - VARIANT_TRUE
Ouvre la connexion HTTP en mode asynchrone.
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 ouvre une connexion à la ressource identifiée dans Url à l’aide du verbe HTTP donné dans Méthode.
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 lire le texte de 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 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->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, envoyer une requête HTTP et lire le texte de 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 response text.
WScript.Echo( WinHttpReq.ResponseText);
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 |
|