Metode IWinHttpRequest::Open

Metode Buka membuka koneksi HTTP ke sumber daya HTTP.

Sintaks

HRESULT Open(
  [in]           BSTR    Method,
  [in]           BSTR    Url,
  [in, optional] VARIANT Async
);

Parameter

Metode [in]

Menentukan kata kerja HTTP yang digunakan untuk metode Buka , seperti "GET" atau "PUT". Selalu gunakan huruf besar karena beberapa server mengabaikan kata kerja HTTPhuruf kecil s.

Url [in]

Menentukan nama sumber daya. Ini harus berupa URL absolut.

Asinkron [in, opsional]

Menunjukkan apakah akan terbuka dalam mode asinkron.

Nilai Makna
VARIANT_FALSE
Membuka koneksi HTTP dalam mode sinkron. Panggilan ke Kirim tidak kembali sampai WinHTTP benar-benar menerima respons.
VARIANT_TRUE
Membuka koneksi HTTP dalam mode asinkron.

Menampilkan nilai

Nilai yang dikembalikan S_OK pada keberhasilan atau nilai kesalahan jika tidak.

Keterangan

Metode ini membuka koneksi ke sumber daya yang diidentifikasi di Url menggunakan kata kerja HTTP yang diberikan dalam Metode.

Catatan

Untuk Windows XP dan Windows 2000, lihat bagian Persyaratan Run-Time di Halaman Mulai WinHTTP.

Contoh

Contoh berikut menunjukkan cara membuka koneksi HTTP, mengirim permintaan HTTP, dan membaca teks respons.

#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;
}

Contoh pembuatan skrip berikut menunjukkan cara membuka koneksi HTTP, mengirim permintaan HTTP, dan membaca teks respons.

// 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);

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows XP, Windows 2000 Professional dengan SP3 [hanya aplikasi desktop]
Server minimum yang didukung
Windows Server 2003, Windows 2000 Server dengan SP3 [hanya aplikasi desktop]
Redistribusi
WinHTTP 5.0 dan Internet Explorer 5.01 atau yang lebih baru di Windows XP dan Windows 2000.
IDL
HttpRequest.idl
Pustaka
Winhttp.lib
DLL
Winhttp.dll

Lihat juga

IWinHttpRequest

WinHttpRequest

Versi WinHTTP