Q&A

  • indy와 webbrowser가 다른 값을 주는 문제.
안녕하세요.
인디로 특정 url에서 xml을 긁어오다가 한가지 문제가 생겼습니다.
http://www.test.com/test.php라는 url이 있습니다.
이 php는 접속자가 로그인했으면 xml을 주고 아니면 오류통보를 돌려줍니다.
문제는 http://www.test.com에 IE에서 로그인 한후에도 idhttp.get를 쓰면 오류통보가 온다는겁니다.
로그인후에 webbrowser.navigate를 쓰면 xml이 돌아오는데 인디처럼 블로킹방식으로 동작하지 않으므로 기본프로세스와 동기를 맞출수 없습니다.

선배님들께서 앞을 밝혀주시기를 고대합니다.
5  COMMENTS
  • Profile
    steps 2008.08.22 02:49
    아래 코드로 걍 맞춰놓긴 했는데요.
    repeat until을 쓴게 보기 싫습니다.
    웹브라우저를 쓰지않고 인디로 할 방법이 없을가요?
    <!--CodeS-->
    private
    { Private declarations }
    docend : Boolean;
    reply : WideString;
    function getreply(vurl : string): WideString;

    function TForm1.getreply(vurl: string): WideString;
    begin
    wb.Navigate(vurl);
    repeat
    Application.ProcessMessages;
    until docend;
    Result := reply;
    end;

    procedure TForm1.wbBeforeNavigate2(Sender: TObject; const pDisp: IDispatch;
    var URL, Flags, TargetFrameName, PostData, Headers: OleVariant;
    var Cancel: WordBool);
    begin
    docend := False;
    end;

    procedure TForm1.wbDocumentComplete(Sender: TObject;
    const pDisp: IDispatch; var URL: OleVariant);
    begin
    reply := wb.OleObject.document.documentelement.outerhtml;
    docend := True;
    end;
    <!--CodeE-->
  • Profile
    이정욱 2008.08.22 05:38
    http 프로토콜에 대해서 조금 더 알아보셔야 합니다.

    인터넷 익스플로러에서 로그인 했다고 해서, 오페라나 파이어폭스에서도 로그인된 상황으로 만들어 주지 않는 것 처럼, 인디 역시 마찬가지 입니다.

    로그인 절차를 인디를 이용하여 로그인 하셔야 하고, 그리고 나서 필요한 부분을 호출 해 주셔야 합니다.

    인디안에 쿠키를 사용할 수 있게 되어있습니다.

    이 부분을 보시면 아마 해결 하실 수 있으실 것 같습니다.
  • Profile
    steps 2008.08.22 05:51
    정욱님 답변 감사드립니다.
    로그인 한후에 쿠키를 리용하려면 iddhttp의 AllowCookies를 true로 해주고 쿠키매니저를 하나 달아주면 되는가요?
    인디로 쿠키를 다뤄봄 경험이 없어 념치불구 다시 질문올립니다.
  • Profile
    이정욱 2008.08.24 08:24
    쿠키 메니저를 달고, 로그인 절차를 거치셔야 합니다. Post 방법으로 로그인 절차를 해보시구요 ^^
  • Profile
    steps 2008.08.24 19:54
    이정욱님 감사합니다.
    • 박상윤
      2008.10.03 01:24
      mediainfo 라는 오픈소스가 있습니다.. 모두다 된다고 볼수는 없만.. 거의 대부분 찾아 냅니다. 검색해...
    • 이정욱
      2008.08.27 10:44
      PPT는 모르고...Flash 생성은... Delphi Flash 컴포넌트를 이용해서 가능한것으로 알고 있습니다 ^^; 흉...
    • 박성준
      2008.08.27 19:02
      PPT 이어야 합니다. ^^ 그런데, Flash라... 음... 고민해봐야 될 문제 인 것 같습니다.
    • 누룽지
    • 2008.08.23 00:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2008.08.24 08:32
      자도 오늘 트라이얼을 설치 했는데 pdf 파일이 있던데요. 그걸 읽어 보시면 될 것 같습니다.
    • 김호정
    • 2008.08.22 21:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 임대순
      2008.09.03 01:46
      예전 저하고 비슷한 경우인거 같네요... 우선은 먼저 비교부분이 애매모 합니다. 가령 한 예로 들...
    • 민영창
    • 2008.08.22 20:08
    • 0 COMMENTS
    • /
    • 0 LIKES
    • steps
    • 2008.08.22 01:21
    • 5 COMMENTS
    • /
    • 0 LIKES
    • steps
      2008.08.22 02:49
      아래 코드로 걍 맞춰놓긴 했는데요. repeat until을 쓴게 보기 싫습니다. 웹브라우저를 쓰지않고 인디...
    • 이정욱
      2008.08.22 05:38
      http 프로토콜에 대해서 조금 더 알아보셔야 합니다. 인터넷 익스플로러에서 로그인 했다고 해서, 오...
    • steps
      2008.08.22 05:51
      정욱님 답변 감사드립니다. 로그인 한후에 쿠키를 리용하려면 iddhttp의 AllowCookies를 true로 해주고 ...
    • 이정욱
      2008.08.24 08:24
      쿠키 메니저를 달고, 로그인 절차를 거치셔야 합니다. Post 방법으로 로그인 절차를 해보시구요 ^^
    • steps
      2008.08.24 19:54
      이정욱님 감사합니다.
    • 장성호
      2008.08.22 19:40
      Delphi의 힌트는 TApplication 객체에서 관리합니다. 그런데 TListView는 win32 컨트롤을 슈퍼클래싱...
    • 장성호
      2008.08.22 20:00
      아 방금 정확한 방법을 찾았습니다. 위 방법으로 해도 되긴 되지만 꼼수이구... 아래와 같이 하시...
    • 장성호
      2008.08.22 20:26
      참고하세요 http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=795
    • 이종운
      2008.08.23 01:04
      장성호님 답변 정말 감사합니다. 그런데, 제가 짧은 델파이 경력으로 어떻게 써야 할지.. 잘 몰라서요...
    • 장성호
      2008.08.23 01:24
      유닛 commctrl 에 있습니다. uses commstrl ; 그럼..
    • 이종운
      2008.08.25 20:18
      장성호님 답변 감사합니다. 좋은좋은 하루 되세요~ 꾸벅!
    • 최용일
      2008.08.21 22:34
      그냥 const로 선언하세요. 너무 기니까 줄을 바꿔서 쓰시면 됩니다. 문자열 연결은 +로 하시구요. co...
    • 박정순
      2008.08.22 01:38
      저는 <!--CodeS--> const LongConst = 'data1 data2 data3'; <!--CodeE--> 이렇게 ...
    • 김호정
    • 2008.08.21 06:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이윤도
      2008.08.27 05:25
      procedure TForm1.RealGrid1DrawCell(AColumn: TwColumn; ARow: Integer; var Text: String; var BC...
    • 아르스
    • 2008.08.20 21:04
    • 3 COMMENTS
    • /
    • 0 LIKES
    • steps
      2008.08.20 21:16
      str := 'aaa/bb/ccc/ddddd'; rstr := reversestring(str); result := reversestring(copy(rstr, 1, p...
    • 이정욱
      2008.08.20 21:18
      function ExtractLast(const Str: string): string; var I: Integer; begin I := LastDelimite...
    • 아르스
      2008.08.20 21:24
      감사합니다. reversestring() 이랑 LastDelimiter() 이 있었군요...
    • 안학순
    • 2008.08.19 23:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이종탁
      2008.08.26 20:37
      DBGrid 는 테이블에 대한 일종의 터미널 같은 기능이니 Query 객체로 조작하면 됩니다. DB 종류나 Que...
    • 혀노
    • 2008.08.18 23:20
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2008.08.19 18:45
      그냥 중학교 정도의 간단한 수학인데.... 800:축소된높이=원본너비:원본높이 축소된높이=800*원본높...
    • 혀노
      2008.08.19 19:15
      축소 길이 계산이 문제가 아니라 축소되어서 저장이 안되어서_- (소스 적힌 축소 길이는 그냥 적은거)
    • 최용일
      2008.08.19 19:25
      음... 특정필드의 값의 표시를 바꿀려면 OnGetText이벤트에서 바꾸세요.... procedure TForm1.Table...
    • steps
      2008.08.17 02:50
      image321이름이나 .bitmap.handle을 쓴걸 봐선 graphics32를 쓰신것같은데 왜 bitblt를 쓰시는지요? 걍 ...
    • 신디
      2008.08.17 20:29
      아 . 그렇군요 이런 방법이 있었네요. 감사합니다.^^
    • steps
    • 2008.08.14 23:08
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2008.08.14 23:48
      is연산자는 쓸 수 없습니다. 트리뷰 노드의 Data에 들어가는 레코드형에 레벨에 따라 동적으로 자료가 ...
    • steps
      2008.08.15 00:40
      용일님 정말 감사합니다.
    • 최용일
      2008.08.14 22:08
      Base64 인코딩/디코딩하는 모듈은 이미 많이 나와 있습니다. 굳이 ASP를 델파이로 변경해서 쓸 필요없이...
    • 최길남
      2008.08.14 22:51
      이미 검색은 다해보고 여러가지 다운로드해서 테스트도 해봤습니다. 그런데 자료실에 있는 모듈과 결과가...
    • 최용일
      2008.08.14 23:01
      흠... 저건 어느 언어로 코딩해도 똑같을 수 밖에 없는데... 어떻게 다르나요? 혹시... ASP니까 웹에서...
    • 최길남
      2008.08.14 23:29
      1234 를 Base64 인코딩하면 MTIzNA== 라고 나와야 하는데요. 위 ASP 함수는 OVK1PECi ...
    • 최용일
      2008.08.15 00:33
      음... 다른 결과가 나오는군요.... 쩝~ 최대한 기본 틀을 안바꿀려고 했는데 언어상의 차이 때문에 좀...
    • 최길남
      2008.08.15 00:46
      정말 감사합니다.. 좋은 하루 되세요.. ^_^
    • 반민석
      2010.04.16 17:18
      이싸이트 참고 하세요 : http://www.delphi3000.com/articles/article_3404.asp?SK=base64