高手帮忙,TCppWebBrowser超难问题

swnuwangyun 2005-04-30 07:16:01
在使用TCppWebBrowser的Navigate2函数打开一个页面时,我想自己设置一个Header,Navigate2函数确实也提供了一个参数来设置,但是当用户在TCppWebBrowser中点击超连接跳到其它页面时,我的Header就掉了,我在BeforeNavigate2事件中发现Header中的数据是空的,我就想在BeforeNavigate2事件中重新设置Header当后来发现Header参数是in属性,也就是说是只读的。于是我就将其Cancel属性置为True,调用Stop方法,然后重新设置Header,重新Navigate2。似乎工作正常,但是新的问题出来了。当用户在页面中用右键在新的页面打开一个页面后,TWebBrowser就出问题了,每次Navigate2出去的Header都是我自定义的值,但服务器给我返回的并不是这个值,而是一个它自己默认的值,而且我的SessionID也变了。因此,我想能否有办法预先的把TWebBrowser设置一个SessionID属性和Header属性,这样每次Navigate2的时候将自动的使用这些属性。
下面是相关代码
TVariant* vurl=new TVariant(url);
TVariant* vheaders=new TVariant("User-Agent: Live800CppWebBrowser\r\n");
CppWebBrowser2->Navigate2(vurl, 0, 0, 0, vheaders);
delete vurl;
delete vheaders;


void __fastcall TMainForm::CppWebBrowser1BeforeNavigate2(TObject *Sender,
LPDISPATCH pDisp, Variant *URL, Variant *Flags,
Variant *TargetFrameName, Variant *PostData, Variant *Headers,
VARIANT_BOOL *Cancel)
{
AnsiString oldHeader=*Headers;
if(oldHeader=="")
{
*Cancel=true;
CppWebBrowser1->Stop();
AnsiString u=*URL;
AnsiString f=*Flags;
AnsiString t=*TargetFrameName;
AnsiString p=*PostData;
AnsiString h="User-Agent: CppWebBrowser\r\n";
h+="cookie:JSESSIONID="+ GBusinessAgent->SessionCookie+"\r\n";
TVariant* url=new TVariant(u);
TVariant* flags=new TVariant(f);
TVariant* target=new TVariant(t);
TVariant* post=new TVariant(p);
TVariant* header=new TVariant(h);
CppWebBrowser1->Navigate2(url,flags,target,post,header);
delete url;
delete flags;
delete target;
delete post;
delete header;
}
else
{
//do nothing
}
}
...全文
393 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2005-05-01
  • 打赏
  • 举报
回复
STDMETHODIMP NegotiateCallback::XHttpNegotiateObj::BeginningTransaction(LPCWSTR
szUrl, LPCWSTR szHeaders, DWORD dwReserved, LPWSTR
*pszAdditionalHeaders) {
LPWSTR pszHeader = (LPWSTR)CoTaskMemAlloc(74);
memcpy((void*)pszHeader, (void*)L"X-Custom-App: Version
1.1.3748.9\r\n", 74);
*pszAdditionalHeaders=pszHeader;

return S_OK;
}


http://msdn.microsoft.com/library/en-us/dnwebteam/html/webteam07012002.asp

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧