void TFormMain::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->Navigate2((TVariant)sURL, &vFlags, &vTargetFrameName, &vPostData, &vHeaders);
}
이런 소스를 사용하면 가능하다고 해서 실험해 봤는데,
새창은 떠도 POST 로 값이 넘어가질 않습니다.
함수 호출 할 때 넘겨주는 인자중에 String sPostData 에 어떤 식으로 넘겨줘야 하나요??
WebPostData ( WebBrowser, "
http://www.naraman.com/test.php?value=33", "" );
이렇게 하면 GET 방식으로 value 에 33 이 들어옵니다.
그런데
WebPostData ( WebBrowser, "
http://www.naraman.com/test.php?", "value=33" );
이렇게 하면 POST 로 값이 넘어가질 않습니다..
--;; POST 로 넘겨줄값은 어떤식으로 넘겨줘야 할까요??