我想使用IXMLHTTPRequest2對象在Windows 8上發送HTTP請求,並且我想將傳出的Accept-Encoding標頭自定義爲缺省值「gzip,deflate」以外的內容。當我嘗試使用SetRequestHeader方法設置Accept-Encoding標頭時,方法調用成功,但仍然使用默認標頭值而不是我提供的值(使用Wireshark捕獲HTTP請求進行驗證)發送請求。覆蓋IXMLHTTPRequest2的默認標頭
示例代碼(簡化beverity):的請求
::CoCreateInstance(CLSID_FreeThreadedXMLHTTP60, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_pXHR));
m_pXHR->Open("GET", "http://192.168.0.100/test", m_pXHRCallback.Get(), NULL, NULL, NULL,NULL);
m_pXHR->SetRequestHeader(L"Accept-Encoding", L"gzip");
m_pXHR->Send(NULL, 0);
Wireshark的捕獲該被製成:
GET /users/me/id HTTP/1.1
Accept: */*
Host: 192.168.0.100
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
我嘗試這樣 '把手型>的SetProperty(XHR_PROP_NO_DEFAULT_HEADERS,1);'但它沒有刪除Accept-Encoding:gzip,從頭文件中解壓縮。 – catalyst294