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 方法,例如 GET 或 POST。 对于 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。
注解
尽管此方法接受通过 参数传递的凭据,但这些凭据不会在第一个请求中自动发送到服务器。 pwszUserName 和 pwszPassword 参数不会发送到服务器,除非服务器使用 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 |