IXMLHTTPRequest2オブジェクトを使用してWindows8でHTTPリクエストを送信しようとしていますが、送信するAccept-Encodingヘッダーをデフォルト値の「gzip、deflate」以外にカスタマイズしたいと思います。SetRequestHeaderメソッドを使用してAccept-Encodingヘッダーを設定しようとすると、メソッド呼び出しは成功しますが、要求は、指定した値ではなくデフォルトのヘッダー値で送信されます(Wiresharkを使用してHTTP要求をキャプチャすることで確認済み)。
サンプルコード(わかりやすくするために簡略化):
::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