一个困扰我很多天的问题IWebBrowser2的Navigate2方法的post参数(第四个参数)
我想调用此方法Navigate2到一个url,并post的一些数据给这个url,就像类似执行下这样的网页一样http:\\127.0.0.1\user_login.asp?user_name='123'不过这种是get的方式传送数据
下面是我参考网上和网友提供的示例写的,不知道哪儿还有问题,始终无法接收到post参数中的数据,好心人帮我看一下究竟是哪儿的问题,感激啊
CComVariant sURL="127.0.0.1/user_login.php";
CString sPostData="user_name=1234";
BSTR bstrHeaders = NULL;
CComVariant vFlags = "", vTargetFrameName="", vPostData="", vHeaders="";
LPSAFEARRAY psa;
UINT cElems = sPostData.GetLength();
LPSTR pPostData;
LPVARIANT pvPostData;
HRESULT hr;
CComPtr<IWebBrowser2> pWebBrowser2;
CoInitialize(NULL);
hr = CoCreateInstance(CLSID_InternetExplorer,
NULL,CLSCTX_LOCAL_SERVER,
IID_IWebBrowser2,(void **)&pWebBrowser2);
bstrHeaders = SysAllocString(L"Content-Type: application/x-www-form-urlencodedrn");
if (!bstrHeaders)
{
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, sPostData, cElems);
SafeArrayUnaccessData(psa);
V_VT(pvPostData) = VT_ARRAY | VT_UI1;
V_ARRAY(pvPostData) = psa;
}
pWebBrowser2->Navigate2(&sURL, &vFlags, &vTargetFrameName, &vPostData, &vHeaders);