设为首页 加入收藏

TOP

【组件】CppWebBrowser的使用二 利用Post提交数据
2012-11-01 11:24:24 来源: 作者: 【 】 浏览:377
Tags:组件 CppWebBrowser 使用   利用 Post 提交 数据

CppWebBrowser的使用二 利用Post提交数据

下面是这段经典的代码,够用就好:

void __fastcall TMainForm::WebPostData(TCppWebBrowser *CppWebBrowser, String sURL, String sPostData)
{
BSTR bstrHeaders = NULL;
TVariant vFlags = {0}, vTargetFrameName={0}, vPostData={0}, vHeaders={0};
LPSAFEARRAY psa;
LPCTSTR cszPostData = sPostData.c_str();
UINT cElems = lstrlen(cszPostData);
LPSTR pPostData;
LPVARIANT pvPostData;

bstrHeaders = SysAllocString(L"Content-Type: application/x-www-form-urlencodedrn");
if (!bstrHeaders){
Application->MessageBox("Could not allocate bstrHeaders", "Warning", MB_OK | MB_ICONWARNING);
return;
}

V_VT(&vHeaders) = VT_BSTR;
V_BSTR(&vHeaders) = bstrHeaders;

pvPostData = vPostData;

if(pvPostData){
VariantInit(pvPostData);

psa = SafeArrayCreateVector(VT_UI1, 0, cElems);
if(!psa){
return;
}

SafeArrayAccessData(psa, (LPVOID*)&pPostData);
memcpy(pPostData, cszPostData, cElems);
SafeArrayUnaccessData(psa);

V_VT(pvPostData) = VT_ARRAY | VT_UI1;
V_ARRAY(pvPostData) = psa;
}

CppWebBrowser->Navigate((TVariant)sURL, &vFlags, &vTargetFrameName, &vPostData, &vHeaders);
}

 

使用案例:

点击按钮,实现网站的登陆,代码如下:

void __fastcall TMainForm::Button1Click(TObject *Sender)
{
AnsiString str1,str2;

str1="http://www.bcbgame.com/hdpad/User_Register.asp";
str2 = "username=csdn&password=mingwen";

WebPostData(CppWebBrowser1,str1,str2);

}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇【组件】CppWebBrowser的使用三&n.. 下一篇【组件】CppWebBrowser的使用一&n..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: