iXMLHTTPRequest2::Open 方法 (msxml6.h)

初始化 IXMLHTTPRequest2 请求,并指定请求的方法、URL 和身份验证信息。 调用此方法后,必须调用 Send 方法将请求和数据(如果有)发送到服务器。

语法

HRESULT Open(
  [in]           const WCHAR              *pwszMethod,
  [in]           const WCHAR              *pwszUrl,
  [in, optional] IXMLHTTPRequest2Callback *pStatusCallback,
  [in, optional] const WCHAR              *pwszUserName,
  [in, optional] const WCHAR              *pwszPassword,
  [in, optional] const WCHAR              *pwszProxyUserName,
  [in, optional] const WCHAR              *pwszProxyPassword
);

参数

[in] pwszMethod

用于打开连接的 HTTP 方法,例如 GETPOST。 对于 XMLHTTP,此参数不区分大小写。

[in] pwszUrl

请求的 URL。 这必须是绝对 URL,例如“http://Myserver/Mypath/Myfile.asp"”。

[in, optional] pStatusCallback

由应用实现的回调接口,用于接收回调事件。

当 Send 方法成功时,将调用此接口上的方法来处理响应或其他事件。

[in, optional] pwszUserName

身份验证的用户名称。 如果此参数为 Null 且站点需要身份验证,则凭据将由 Windows 管理,包括显示登录 UI,除非 SetProperty 禁用。

[in, optional] pwszPassword

用于身份验证的密码。 如果 pwszUserName 参数为 Null 或缺失,则忽略此参数。

[in, optional] pwszProxyUserName

在代理服务器上进行身份验证的用户的名称。 如果此参数为 Null 或空字符串,并且站点需要身份验证,则凭据将由 Windows 管理,包括显示登录 UI,除非 SetProperty 禁用。

[in, optional] pwszProxyPassword

用于在代理服务器上进行身份验证的密码。 如果 pwszProxyUserName 参数为 Null 或缺失,则忽略此参数。

返回值

如果成功,则返回 S_OK。

注解

尽管此方法接受通过 参数传递的凭据,但这些凭据不会在第一个请求中自动发送到服务器。 pwszUserNamepwszPassword 参数不会发送到服务器,除非服务器使用 401 - 未授权响应向客户端质询凭据。

示例

//
// Create and initialize an IXMLHTTPRequest2 object
//
hr = CoCreateInstance(CLSID_FreeThreadedXMLHTTP60,
                      NULL,
                      CLSCTX_INPROC_SERVER,
                      IID_PPV_ARGS(&spXHR));

//
//Create and initialize an IXMLHTTPRequest2Callback object
//
hr = MakeAndInitialize<CXMLHttpRequest2Callback>(&spXhrCallback);

hr = spXHR->Open(L"GET",              // Method.
                 pcwszUrl,            // Url.
                 spXhrCallback.Get(), // Callback.
                 NULL,                // Username.
                 NULL,                // Password.
                 NULL,                // Proxy username.
                 NULL);               // Proxy password.

//
//Send the GET request
//
hr = spXHR->Send(NULL, 0);

hr = spXhrCallback->WaitForComplete(&dwStatus);

有关完整示例,请参阅 XML HTTP 请求 2 GET 示例XML HTTP 请求 2 POST 示例

要求

要求
最低受支持的客户端 Windows 8 [桌面应用 |UWP 应用],MSXML 6.0 及更高版本
最低受支持的服务器 Windows Server 2012 [桌面应用 |UWP 应用]
目标平台 Windows
标头 msxml6.h

另请参阅

IXMLHTTPRequest2

IXMLHTTPRequest2Callback 接口

Send 方法