IWinHttpRequest::Open method
The Open method opens an HTTP connection to an HTTP resource.
Syntax
HRESULT Open( [in] BSTR Method, [in] BSTR Url, [in, optional] VARIANT Async );
Parameters
- Method [in]
-
Specifies the HTTP verb used for the Open method, such as "GET" or "PUT". Always use uppercase as some servers ignore lowercase HTTP verbs.
- Url [in]
-
Specifies the name of the resource. This must be an absolute URL.
- Async [in, optional]
-
Indicates whether to open in asynchronous mode.
Value Meaning - VARIANT_FALSE
Opens the HTTP connection in synchronous mode. A call to Send does not return until WinHTTP has completely received the response.
- VARIANT_TRUE
Opens the HTTP connection in asynchronous mode.
Return value
The return value is S_OK on success or an error value otherwise.
Remarks
This method opens a connection to the resource identified in Url using the HTTP verb given in Method.
Note For Windows XP and Windows 2000, see the Run-Time Requirements section of the WinHTTP Start Page.
Examples
The following example shows how to open an HTTP connection, send an HTTP request, and read the response text.
#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"http://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; }
The following scripting example shows how to open an HTTP connection, send an HTTP request, and read the response text.
// Instantiate a WinHttpRequest object.
var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
// Initialize an HTTP request.
WinHttpReq.Open("GET", "http://www.microsoft.com", false);
// Send the HTTP request.
WinHttpReq.Send();
// Display the response text.
WScript.Echo( WinHttpReq.ResponseText);
Requirements
|
Minimum supported client | Windows XP, Windows 2000 Professional with SP3 [desktop apps only] |
|---|---|
|
Minimum supported server | Windows Server 2003, Windows 2000 Server with SP3 [desktop apps only] |
|
Redistributable | WinHTTP 5.0 and Internet Explorer 5.01 or later on Windows XP and Windows 2000. |
|
IDL |
|
|
Library |
|
|
DLL |
|
See also
Send comments about this topic to Microsoft
Build date: 10/26/2012
