IWinHttpRequest::Open (método)
El método Open abre una conexión HTTP a un recurso HTTP.
Sintaxis
HRESULT Open(
[in] BSTR Method,
[in] BSTR Url,
[in, optional] VARIANT Async
);
Parámetros
-
Método [in]
-
Especifica el verbo HTTP usado para el método Open , como "GET" o "PUT". Use siempre mayúsculas, ya que algunos servidores omiten los verbos HTTPen minúsculas.
-
Dirección URL [in]
-
Especifica el nombre del recurso. Debe ser una dirección URL absoluta.
-
Asincrónico [in, opcional]
-
Indica si se va a abrir en modo asincrónico.
Valor Significado - VARIANT_FALSE
Abre la conexión HTTP en modo sincrónico. Una llamada a Send no devuelve hasta que WinHTTP haya recibido completamente la respuesta. - VARIANT_TRUE
Abre la conexión HTTP en modo asincrónico.
Valor devuelto
El valor devuelto se S_OK si se ejecuta correctamente o un valor de error de lo contrario.
Observaciones
Este método abre una conexión al recurso identificado en Url mediante el verbo HTTP especificado en Method.
Nota
Para Windows XP y Windows 2000, consulte la sección Requisitos en tiempo de ejecución de la página de inicio de WinHTTP.
Ejemplos
En el ejemplo siguiente se muestra cómo abrir una conexión HTTP, enviar una solicitud HTTP y leer el texto de respuesta.
#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;
}
En el ejemplo de scripting siguiente se muestra cómo abrir una conexión HTTP, enviar una solicitud HTTP y leer el texto de la respuesta.
// 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);
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows XP, Windows 2000 Professional con SP3 [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows Server 2003, Windows 2000 Server con SP3 [solo aplicaciones de escritorio] |
Redistribuible |
WinHTTP 5.0 e Internet Explorer 5.01 o posterior en Windows XP y Windows 2000. |
IDL |
|
Biblioteca |
|
Archivo DLL |
|