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
HttpRequest.idl
Biblioteca
Winhttp.lib
Archivo DLL
Winhttp.dll

Vea también

IWinHttpRequest

WinHttpRequest

Versiones winHTTP