본문 바로가기
C & C++/MFC Network

[Web] 웹사이트에 접속하여 원하는 HTML 문서 얻는법

by izen8 2011. 12. 14.
반응형

지정한 웹사이트에 접속하여 원하는 Html 파일의 내용을 얻는 방법에 대해서 알아보겠습니다.
 
// StdAfx.h 파일에 CInternetSession 클래스를 사용하기 위해서 아래의 코드를 추가한다.
#include <afxinet.h>
 

// 지정한 웹사이트에 접속하여 원하는 Html 파일의 내용을 얻기위한 멤버함수
void 클래스명::OnOpenBtn()
{
    // 세션 클래스 생성하기
    // (선택) 일반적인 경우
    CInternetSession session;
 
    // (선택) 세션이 연결된 이후, 웹 사이트의 Html 정보가 변경된 사항을 가져올 경우
    CInternetSession session(NULL, 1, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL,
                                                       INTERNET_FLAG_DONT_CACHE);
 
    try {
        // 세션 클래스를 이용하여 Html 파일 열기
        // (선택) http://www.tipssoft.com/main.htm
파일을 여는 일반적인 방법
        CInternetFile *p_html = (CInternetFile *)session.OpenURL("http://www.tipssoft.com/main.htm");
 
        // (선택) http://www.tipssoft.com/main.htm 파일의 내용이 중간에 변경되더라도 변경된 정보를 정확히
        // 얻고 싶다면 아래와 같이 코드를 사용한다.
        CInternetFile *p_html = (CInternetFile *)session.OpenURL("parm_url, 1,
                                     INTERNET_FLAG_TRANSFER_ASCII | INTERNET_FLAG_DONT_CACHE);
        if(p_html != NULL){
            CString str, html_text;
 
            // Html 정보를 가져올때 사용할 버퍼의 크기를 512Bytes로 설정한다.
            p_html->SetReadBufferSize(512);
            while(1){
                // 더 이상 읽을 정보가 없다면 종료한다.
                if(!p_html->ReadString(str)) break;
 
                // 읽어 들인 정보는 html_text 문자열에 추가한다.
                html_text += str;
            }
            // Html 파일을 닫는다.
            p_html->Close();
 
            // Html 파일 읽기에 사용한 객체를 파괴한다.
            delete p_html;
 
            // 세션을 닫는다.
            session.Close();
 
            // html_text 문자열에 http://www.tipssoft.com/main.htm 파일의 내용이 들어있다.
            // html_text 문자열을 출력하는 코드를 추가한다.
 
        }
 
    } catch(CInternetException *){
 
        // Html 정보 읽기를 시도하다 실패하면 아래의 코드가 수행된다.
        MessageBox("서버에 접속할수 없습니다.", "접속 오류", MB_ICONSTOP);
    }
}
반응형

'C & C++ > MFC Network' 카테고리의 다른 글

[Windows IPC] 프로세스간 통신  (0) 2013.11.14
[Web] 하이퍼 링크  (0) 2011.12.14
[Web] 웹브라우져 팁  (0) 2011.05.25
[Web] 인터넷 연결여부 확인  (0) 2011.05.25
[Web] 소켓 프로그래밍  (0) 2011.04.25

댓글