프로그래밍 관련 소스코드 및 정보를 제공합니다.

POST 방식으로 쿼리(DATA) 전송

Read 1048 2010/07/26 18:05:51
[레벨:6]운영자 *.227.77.236
#include <windows.h>
#define INITGUID
#include <initguid.h>
#include <exdisp.h>
#include <memory.h>

HRESULT GetPostData(LPVARIANT pvPostData);

void main()
{
HRESULT hr;
IWebBrowserApp* pWBApp = NULL; // Derived from IWebBrowser
BSTR bstrURL = NULL, bstrHeaders = NULL;
VARIANT vFlags = {0},
vTargetFrameName = {0},
vPostData = {0},
vHeaders = {0};

if (FAILED(hr = CoInitialize(NULL)))
{
return;
}

if (FAILED(hr = CoCreateInstance(CLSID_InternetExplorer,
NULL,
CLSCTX_SERVER,
IID_IWebBrowserApp,
(LPVOID*)&pWBApp)))
{
goto Error;
}

bstrURL = SysAllocString(L"http://<server>/scripts/navpost.asp" );
if (!bstrURL)
{
goto Error;
}

bstrHeaders = SysAllocString(
L"Content-Type: application/x-www-form-urlencoded\r\n" );
if (!bstrHeaders)
{
goto Error;
}

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

hr = GetPostData(&vPostData);
hr = pWBApp->Navigate(bstrURL, &vFlags,
&vTargetFrameName, &vPostData, &vHeaders);
pWBApp->put_Visible(VARIANT_TRUE);

Error:
if (bstrURL) SysFreeString(bstrURL);
if (bstrHeaders) SysFreeString(bstrHeaders);
VariantClear(&vPostData);
if (pWBApp) pWBApp->Release();
CoUninitialize();
}

// Pack some data into a SAFEARRAY of BYTEs. Return in a VARIANT
HRESULT GetPostData(LPVARIANT pvPostData)
{
HRESULT hr;
LPSAFEARRAY psa;
LPCTSTR cszPostData = "FName=Matt&Flavor=Mocha+Chip";
UINT cElems = lstrlen(cszPostData);
LPSTR pPostData;

if (!pvPostData)
{
return E_POINTER;
}

VariantInit(pvPostData);

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

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

V_VT(pvPostData) = VT_ARRAY l VT_UI1;
V_ARRAY(pvPostData) = psa;
return NOERROR;
}
문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회
181 [해결법] error C2065: 'strcpy_instead_use_StringCbCopyA_or_StringCchCopyA' : undeclared identifier [레벨:6]운영자 2010/08/30 452
180 POST 방식으로 웹에 데이터 전송 후 페이지 내용 얻기(VC6.0버전) file [레벨:6]운영자 2010/07/28 920
179 POST 방식으로 데이터 전송 [레벨:6]운영자 2010/07/28 1022
178 CString → BSTR 변환 [레벨:6]운영자 2010/07/26 1094
» POST 방식으로 쿼리(DATA) 전송 [레벨:6]운영자 2010/07/26 1048
176 uuid.lib(ocidl_i.obj) : fatal error LNK1103: debugging information corrupt; recompile module 해결책 [레벨:6]운영자 2010/07/26 1089
175 바탕화면 경로얻기 [레벨:6]운영자 2010/07/20 1379
174 URL Encode / Decode [레벨:6]운영자 2010/07/05 1684
173 단축키 적용( Ctrl + S ) 적용시 [레벨:6]운영자 2010/06/14 2081
172 폴더존재 유무 확인방법 [레벨:6]운영자 2010/05/05 3196