0
我想使用WinHTTP连接到服务器,不幸的是,当我试图从http升级到webscoket时,API WinHttpSetOption失败。WinHTTP和Websocket
hSessionHandle = WinHttpOpen(L"WebSocket sample",WINHTTP_ACCESS_TYPE_NO_PROXY,NULL, NULL,0);
hConnectionHandle = WinHttpConnect(hSessionHandle, L"localhost",INTERNET_DEFAULT_HTTP_PORT, 0);
hRequestHandle = WinHttpOpenRequest(hConnectionHandle,L"GET",L"/ws",NULL,NULL,NULL, 0);
// Request protocol upgrade from http to websocket.
fStatus = WinHttpSetOption(hRequestHandle,WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET,NULL,0);
if (!fStatus)
{
dwError = GetLastError();
goto quit;
}
fStatus
返回FALSE,以GetLastError
返回错误代码12009它说
ERROR_WINHTTP_INVALID_OPTION
12009:请求到WinHttpQueryOption或WinHttpSetOption指定了无效的选项值。
上面的代码从Microsoft WinHttp WebSocket demo(new GitHub home)
我的系统是采取的Windows 7是否操作系统需要是Windows 8的或以上?这个API的任何线索都失败了?
由于升级完成函数,['WinHttpWebSocketCompleteUpgrade'](https://msdn.microsoft.com/en-us/library/windows/desktop/hh707326(V = vs.85)的.aspx)清楚地将Windows 8指定为最小平台,我将继续说,是的,你需要Windows 8或更高版本。 – WhozCraig
感谢WhozCraig ....有没有什么办法可以在Win 7中使用winHttp的websockets? – Sukhas