본문 바로가기
Code review

[WinAPI]WinInet Library를 사용하여 웹페이지 파일 불러오기 예제

by cafrisun 2010. 6. 30.
 
wininet 라이브러리를 이용하여 웹페이지 파일을 읽어오는 예제.

//-------------------------------------------- // Web page file loader using by WinInet Lib.
#include "stdafx.h"
#include <windows.h>
#include <wininet.h>

#pragma comment(lib, "wininet.lib") 

#define AGENT_NAME    L"TEST APP"


BOOL connectHTTP(const WCHAR *url)
{
    HINTERNET hInternet = NULL;
    HINTERNET hURL = NULL;

    DWORD ReadSize;
    BOOL bResult = TRUE;
    char buffer[4096] = {0,};

    //-----------------
    // InternetOpen()
    hInternet = InternetOpen(AGENT_NAME, 
                                INTERNET_OPEN_TYPE_DIRECT,
                                NULL,
                                NULL,
                                0);
    if(hInternet == NULL)
        return FALSE;

    //---------------------
    // InternetOpenUrl()
    hURL = InternetOpenUrl(hInternet,
                            url,
                            NULL,
                            0,
                            INTERNET_FLAG_RELOAD,
                            0);
    if(hURL == NULL)
    {
        InternetCloseHandle(hInternet);
        return FALSE;
    }

    //-----------------------------------------
    // actually, receive the data right here...
    while(bResult)
    {
        bResult = InternetReadFile(hURL,
                                    buffer,
                                    4096,
                                    &ReadSize);

        printf("%s\n", buffer);
        memset(buffer, 0x0, sizeof(buffer));
        
        if(ReadSize == 0) break;
    }

    //-----------------
    // close handles..
    InternetCloseHandle(hURL);
    InternetCloseHandle(hInternet);

    return TRUE;

}


int _tmain(int argc, _TCHAR* argv[])
{
    WCHAR *URLstr = L"http://wirex.tistory.com";

    if( FALSE == connectHTTP(URLstr) )
    {
        return -1;
    }

    return 0;
}
반응형

'Code review' 카테고리의 다른 글

[C]bitwise and logic operation  (0) 2009.08.07
va_list 의 사용과 vsprintf 이용 예  (0) 2009.07.19
[C] fwrite 예제  (0) 2009.05.27