[请教]Navigate2参数中header的传递方法
这个问题已经困惑了我好久,我看社区里也有人问相同的问题但没人来解答。
大家先看段代码,很简单的:
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
OleInitialize(NULL);
//BROWSER_INFO *pBrowserInfo = (BROWSER_INFO *)pParams;
IWebBrowser2* m_pInetExplorer;
HRESULT hr;
CLSID clsid;
LPUNKNOWN punk=NULL;
CLSIDFromProgID (OLESTR("InternetExplorer.Application"), &clsid);
hr = CoCreateInstance (clsid, NULL, CLSCTX_SERVER, IID_IUnknown, (LPVOID *) &punk);
if (SUCCEEDED(hr))
{
punk->QueryInterface (IID_IWebBrowser2, (LPVOID *) &m_pInetExplorer);
punk->Release();
VARIANT vars[4];
memset(vars,0,sizeof(vars));
BSTR BStrURL = _com_util::ConvertStringToBSTR((const char *)("http://www.b.com/2.html"));
char *strHeader="\r\nReferer: http://www.a.com/1.html\r\n\r\n";
m_pInetExplorer->put_Visible(VARIANT_TRUE);
HRESULT hrie = m_pInetExplorer->Navigate2(&CComVariant(BStrURL),vars,vars+1,vars+2,&CComVariant(strHeader));
代码就实现用Navigate2来打开www.b.com/2.html,同时修改了header中的referrer,在2.html里我写了一个JS:<script>document.write(document.referrer);</script>。照理说我应该在2.html里看到他的前导页面是www.a.com/1.html,但实际上并不是这样。我进行了嗅探,发现Navigate2发出的header中的确已经有referrer:http://www.a.com/1.html,可为什么2.html中的脚本就是获取不到这个referrer的值呢?
哪位也做过相关的测试,能告知是什么原因不?究竟要怎么要才能实现伪造referrer呢?
这是我的联系QQ:3_3_3_98_4_6_6