C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[406] [만해] TCppWebBrowser를 통해 Data Post 하기
강재호.만해 [greenuri] 8525 읽음    2003-10-22 17:28
안녕하세요 만해입니다.

지난번에 Web으로 Data를 포스트 하는 방법으로 질문을 드렸던게

생각이 나서

Borland에서 뒤지니깐

CppWebBrowser를 통해 Data를 post하는 방법이 나오네요

저 같이 웹 로봇을 만드는 님들께 필요 할것 같아서 올려 드립니다.

void 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);
}

URL은 여기입니다. http://bdn.borland.com/article/0,1410,27519,00.html

그리고 대충 보니 SAFEARRAY라는것을 사용하느것 같네요

많은 도움이 되기를 바랍니다.
아루스 [tinydew4]   2011-12-14 10:23 X
아루스 [tinydew4]   2011-12-14 10:31 X
bstrHeaders = SysAllocString(L"Content-Type: application/x-www-form-urlencodedrn");

이부분 문자열 뒷부분이 urlencodedrn 이 아니라 urlencoded\r\n 입니다.
원 작성자가 코드를 옮기면서 빠져버린 듯.

+ -

관련 글 리스트
406 [만해] TCppWebBrowser를 통해 Data Post 하기 강재호.만해 8525 2003/10/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.