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