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

C++빌더 Q&A
C++Builder Programming Q&A
[39266] Re:Re:Re:^^;;
2HB [thigon] 4671 읽음    2005-02-24 19:38
열심히 찾아보다보니 가끔은 답변이라고 어디를 찾아가세요. 해줄수가 있게 된거랄까요;; 뭐, 실제로 해결하는 경우는 거의 없다는게 문제네요.

헤더에다 void WebPostData ( TCppWebBrowser * CppWebBrowser, String sURL, String sPostData ); 를 선언해주시고 사용하면 잘 돌아갑니다.

저기 아래에 헤드부분은...-_-... 통신부분은 현재 전혀 불가능하다 싶기 때문에 딱히 해석해드리긴 힘들지만, 일단 작동 시험은 해봤구요. 잘 돌아갑니다. 작동시험은 XP에 amp환경으로 돌아가는 php에다가 뿌려봤구요. 한글,영어,숫자 모두 별 문제 없이 잘 연동되더군요.

헤드부분을 제대로 이해하려면 브라우저의 헤드부분정보를 좀 자세히 쳐다봐야겠는데.. 이래저래 기억도 가물가물하고 책으로 공부한게 아니라 학원에서 얼렁얼렁 넘어가서... -_-;;;
뭐,  그래도 컨텐트타입은 어플리케이션-x-www-폼-URL엔코딩-이거 그냥 문자열처리라는 뜻이군요..방금 찾았음;;-이고, 언어는 한국어. 인코딩은 gzip...뭐 이런 식인 걸 보면 별 문제 없을 성도 싶구요.

일단. php하고 연동된 것을 올려드릴게요. 아무것도 손 안댄거라서(....)모두 다 기본 네임. 프로젝트 1을 하다가 맹근거라 프로젝트2. 뭐 이런 거구. testcatch.php로 날려주는 형태입니다. testcatch.php도 같이 올렸어요.(.... 저걸 코딩했다고 하자면 참으로 뻘쭘해지긴 하네요..;;;)

하여간. 자꾸보다보면 어떤 식으로 익스플로러가 돌아가는 지 알것도 같아서 좋습니다. 이거...

p.s     BSTR        bstrHeaders =  NULL;
이 부분때문에 안쓰는 놈입니다 위험이 뜨는데요. 그냥 =NULL부분을 지워도 작동에는 문제가 없습니다.
... 하지만, 초반에 NULL로 초기화하는게 더 안정적으로 보이는 면도 있긴 하고.... 설정에 따라서 어찌 될지 모르겠어요. 올린 예제에선 빼버렸지만, 그냥 넣어주는게 오히려 안전할지도 모르겠습니다. 뭐 이것도 저것도 마음에 안들면 순서를 바꿔서

    WideString Head = "Content-Type: application/x-www-form-urlencoded\r\n"
                              "Accept-Language: ko\r\n"
                              "Accept-Encoding: gzip, deflate\r\n";
    BSTR bstrHeaders = SysAllocString(Head);

이런식으로 처리해도 괜찮을지도....;;


이성제 님이 쓰신 글 :
: 2HB님! 요즘에 활동 열씸히 하시네욥 ㅎ
:
: 근대 이거 어떻게 연동 하셨는지??
:
: WebPostData는 사용자 정의 함수가 아닌가요? 선언 할때 애러나는데
:
: 특별히 다른 컴포넌트를 설치 해야하나?
:
: 그리고
: :     WideString Head = "Content-Type: application/x-www-form-urlencoded\r\n"
: :                               "Accept-Language: ko\r\n"
: :                               "Accept-Encoding: gzip, deflate\r\n";
: :                               //"Referer: http://127.0.0.1/login.htm\r\n";
: 이부분에 뭔가 문제가 있지 않나요??
:
: 잘되나..?? ㅎ 어떻게 애러 처리를 해야 하는지 ㅎ
:
: 해더 부분도 좀 올려 주세요 ㅎ
:
: 아님 프로잭트 하나 해서 올려 주세요 ㅎ
:
: 어떻게 짜셧나 보게요 ㅎ 그럼 ㅅㄱ ㅎ
:
:
:
:
: 2HB 님이 쓰신 글 :
: : 38946번 글과 그 밑에 붙어있는 글을 보시면 여기에 대한 내용이 나와있습니다.
: : 저도 한번 사용해 본 결과 잘 사용되구요. 다만 중요(하진 않은)한 것은 저기에 있는 구분자를 &로 하면 안되고 &&를 쓰셔야 하더군요.
: : 그니까.. 이런 식으로 쓰시면 됩니다.
: :
: : /*38946번에 있는 함수 그대로 복사한 것 -_-;;;; */
: : void TForm1::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;
: :
: :
: :     WideString Head = "Content-Type: application/x-www-form-urlencoded\r\n"
: :                               "Accept-Language: ko\r\n"
: :                               "Accept-Encoding: gzip, deflate\r\n";
: :                               //"Referer: http://127.0.0.1/login.htm\r\n";
: :
: :     bstrHeaders = SysAllocString(Head);
: :      
: :     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);
: : }
: : /*38946번에 있는 함수 그대로 복사한 것 -_-;;;; */
: :
: : void __fastcall TForm1::Button1Click(TObject *Sender)
: : {
: :     String sTemp = "";
: :
: :     sTemp = "userid=" +Edit1->Text.Trim()+
: :             "&&passwd=" +Edit2->Text.Trim()+
: :             "&&sender=" +Edit3->Text.Trim()+
: :             "&&reciver=" +Edit4->Text.Trim()+
: :             "&&message="+Edit5->Text.Trim()+
: :             "&&receiver_name="+Edit6->Text.Trim()+
: :             "&&email2="+Edit7->Text.Trim();
: :
: :     WebPostData ( WebBrowser, "http://www.winc7788.co.kr/MSG/send/web_admin_send.htm",sTemp);
: : }
: :
: : 이성제 님이 쓰신 글 :
: : : 포맷 메소드를 쓰면 된다고 하던데.. 잘 모르겠습니다. (머쓱)
: : :
: : :  form method=post name=all target=hidfrm action=http://www.winc7788.co.kr/MSG/send/web_admin_send.htm>  
: : :  input type=hidden name=userid value=문자나라아이디>  
: : :  input type=hidden name=passwd value=문자나라비밀번호>  
: : :  input type=hidden name=sender value=보내는번호>  
: : :  Input type=hidden name=receiver value=받는번호>  
: : :  input type=hidden name=message value=보내는메시지>

+ -

관련 글 리스트
39248 쪼금 괴상한 질문?! 자바소스를 BCB 소스로좀.. 이성제 860 2005/02/24
39249     Re:web브라우져에 포스트로 내용전송. 2HB 1719 2005/02/24
39259         Re:Re:web브라우져에 포스트로 내용전송. 이성제 4025 2005/02/24
39266             Re:Re:Re:^^;; 2HB 4671 2005/02/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.