Q&A

  • [질문] 델파이에서 web으로 파라미터 전송시? get과 post?
델파이사용한지 1주일된 초보가 현재 열심히 찾아서 짜집기한 소스 입니다.
<!--CodeS-->
procedure TForm1.OpenInternetExplorer( sURL : string);
var
  pvShell : IShellWindows;
  X : OleVariant;
  WebBrowser : IWebBrowser2;
  Flag : Boolean;
  dwCount : Integer;
begin
  Flag := False;
  pvShell := CoShellWindows.Create;
  for dwCount := 0 to Pred(pvShell.Count) do begin
    X := pvShell.Item(dwCount);
    if (X.LocationURL = 'http://localhost:8080/local/joHoi.jsp') then begin
      if(IDispatch(X).QueryInterface(IWebBrowser2, WebBrowser)=S_OK) then begin
        Flag := True;
        Break;
      end;
    end;
end;
if (X.LocationURL = 'http://localhost:8080/local/autoView.jsp') then begin
      Form1.BringToFront;
      MessageBox(Handle,PChar('자원 처리중입니다. 처리 완료후 다시 시도하세요'),PChar('오류'),MB_ICONERROR+MB_SYSTEMMODAL) ;
   end else
  if Flag then begin
    X := 0;
    WebBrowser.Navigate('http://localhost:8080/local/joHoiProc.jsp'+'?jmbeonho='+sURL ,X,X,X,X);
  end else Begin
     Form1.BringToFront;
     MessageBox(Handle,PChar('조회페이지를 실행해주세요!!.'),PChar('오류'),MB_ICONERROR+MB_SYSTEMMODAL);
end;
end;
<!--CodeE-->
이런식으로 되있습니다. 초보인 제가 봐도 >_<; 엉성하기 그지 없지만 출력은 되야하니...;
고수분들은 보시면 아시겠지만 리더기를 통해 입력 받은 파라미터 값을 웹(jsp) URL로 전송해서
그 값을 가지고 웹서버에서 검색해서 정보를 조회하도록 되있습니다. 이것도 만드느라 후덜>_<;;

여기서 2가지 바꺼야 할께 있어서 이렇게 문의 드립니다. 현재는 'http://localhost:8080/local/joHoi.jsp'
이런식으로 웹페이지 URL을 체크해서 IE를 제어 했지만 이게 서버에 직접 넣고 하게되면
http://www.delphi.co.kr/index.do 이런식으로 고정이 되서 URL값으로는 제어가 안될꺼 같아서 그런대
그럴때 혹시 예를 들면 jsp나 javascript에 특정 문자나 값을 심어 놓구 String = "delphi" 머 이런식으로;;
이걸 델파이 프로그램으로 값을 받아서 체크해서 이페이지로 파라미터를 넘겨야 하는 페이지인지 구분
하려면 어떻게 해야 하나요?  그리고 현재는 URL로 직접 넘기는 get방식을 쓰고 있어서 그런대 이게
index.do 이런식으로 고정된 형태로도 넘어갈까요? 안된다면 post방식으로 써야 할꺼 같은대?
post로 넘기려면 어떻게 해야 할까요?
고수님들 조언좀 부탁드려요. 비슷한 예제나 소스 있으시면 추천좀 부탁드립니다.

p.s : 아 초보 개발자라 힘드내요 java랑 jsp관련해서 취업했지만 ㅎㅎ 다양한걸 쓰게되내요^^;;
        java나 jsp도 그닦 잘 모르는대>_<;; 더욱이 처음하는 델파이를 ^^;; 그래도 델파이가 더 잼있는듯..
        
2  COMMENTS
  • Profile
    장성호 2008.10.28 23:24

    TWebBrowser를 이용하여 Post로 data전송하려면

    아래 참조하세요
    target=_blank>http://www.swissdelphicenter.ch/en/showcode.php?id=564


    <!--CodeS-->
    procedure TForm1.Button1Click(Sender: TObject);
    var
    i: Integer;
    EncodedStr: string;
    Header: OleVariant;
    Post: OleVariant;
    begin
    // Make the post string URL encoded
    EncodedStr := 'name=SwissDelphiCenter.ch&text=Test Guestbook entry';

    // The post must be an array. But without null terminator (-1)
    Post := VarArrayCreate([0, Length(EncodedStr) - 1], varByte);

    // Put Post in array
    for I := 1 to Length(EncodedStr) do
    Post[I - 1] := Ord(EncodedStr[I]);

    Header := 'Content-Type: application/x-www-form-urlencoded' + #10#13;

    WebBrowser1.Navigate('http://www.swissdelphicenter.ch/en/addguestsent.php', EmptyParam,
    EmptyParam, Post, Header);
    end;
    <!--CodeE-->

    그럼..

  • Profile
    황성일 2008.10.28 23:50
    장성호님// 감사합니다.^^ 잘되내요 저형태로 넘어가면 파라미터가 POST로 넘어 가고 있는거죠?
    이제 페이지를 URL로 제어 하는 부분만 해결 하면 거의 완성 되갈 듯 하내요 또 열심히 찾아 봐야겠내요~_~/