111 lines
3.6 KiB
C
111 lines
3.6 KiB
C
|
|
/*//===============================================================
|
|||
|
|
|
|||
|
|
<< HTTP CLIENT >>
|
|||
|
|
|
|||
|
|
FILE : HTTPCLIENT.H, HTTPCLIENT.CPP
|
|||
|
|
DESC : WININET <EFBFBD><EFBFBD><EFBFBD>̺귯<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>̿<EFBFBD><EFBFBD><EFBFBD> HTTP CLIENT Ŭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
INIT BUILT DATE : 2006. 02. 20
|
|||
|
|
LAST BUILT DATE : 2006. 02. 21
|
|||
|
|
|
|||
|
|
P.S.>
|
|||
|
|
- One-Request,One-Response / Keep-Alive <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD>ۼ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
- One-Request,One-Response : Ư<EFBFBD><EFBFBD> URL<EFBFBD><EFBFBD> HTTP <EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>û<EFBFBD>Ͽ<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Open() <EFBFBD><EFBFBD> RecvResponse() <EFBFBD><EFBFBD> Close())
|
|||
|
|
- Keep-Alive : Ư<EFBFBD><EFBFBD> HTTP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ϴ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>Ź<EFBFBD> <EFBFBD>ٸ<EFBFBD> <EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>û<EFBFBD>Ͽ<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Open() <EFBFBD><EFBFBD> SendRequest() <EFBFBD><EFBFBD> RecvResponse() <EFBFBD><EFBFBD> Close())
|
|||
|
|
|
|||
|
|
Copyright<EFBFBD><EFBFBD> 2002~2007 B4nFter (b4nfter@gmail.com) and Co-Writers. All Rights Reserved.
|
|||
|
|
|
|||
|
|
*///===============================================================
|
|||
|
|
|
|||
|
|
|
|||
|
|
#pragma once
|
|||
|
|
|
|||
|
|
|
|||
|
|
///////////////////////////////////////////////////////////////////
|
|||
|
|
// INCLUDE
|
|||
|
|
///////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
#include <TCHAR.H>
|
|||
|
|
#include <WINDOWS.H>
|
|||
|
|
#include <WININET.H>
|
|||
|
|
|
|||
|
|
#pragma comment(lib, "WININET.LIB")
|
|||
|
|
|
|||
|
|
|
|||
|
|
///////////////////////////////////////////////////////////////////
|
|||
|
|
// DEFINE
|
|||
|
|
///////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
#define DF_DEFAULT_HTTP_PORTNUMBER (80)
|
|||
|
|
|
|||
|
|
///////////////////////////////////////////////////////////////////
|
|||
|
|
// DECLARATION
|
|||
|
|
///////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//*---------------------------------------------------------------
|
|||
|
|
// TYPE : CLASS
|
|||
|
|
// NAME : CHttpClient
|
|||
|
|
//*---------------------------------------------------------------
|
|||
|
|
// DESC : Http Client Ŭ<><C5AC><EFBFBD><EFBFBD>
|
|||
|
|
// PRGM : B4nFter
|
|||
|
|
//*---------------------------------------------------------------
|
|||
|
|
class CHttpClient
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
enum EF_HTTP_CONNECTION_TYPE {
|
|||
|
|
EV_HTTP_CONNECTION_NONE = 0, // <20>ʱⰪ
|
|||
|
|
EV_HTTP_CONNECTION_ONEREQONERSP = 1, // HTTP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : One-Req,One-Rsp
|
|||
|
|
EV_HTTP_CONNECTION_KEEPALIVE = 2, // HTTP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : Keep-Alive
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
CHttpClient();
|
|||
|
|
~CHttpClient();
|
|||
|
|
|
|||
|
|
// One-Req,One-Rsp / Keep-Alive <20><><EFBFBD><EFBFBD> <20><EFBFBD><DEBC><EFBFBD>
|
|||
|
|
BOOL Open(
|
|||
|
|
LPCTSTR lpszHttpServerAddressUrl, // One-Req,One-Rsp : URL <20>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>θ<EFBFBD> <20><><EFBFBD><EFBFBD> / Keep-Alive : <20><><EFBFBD><EFBFBD><EFBFBD>ּ<EFBFBD> (URL, DOT-DECIMAL)
|
|||
|
|
EF_HTTP_CONNECTION_TYPE eHttpConnectionMode = EV_HTTP_CONNECTION_ONEREQONERSP,
|
|||
|
|
INTERNET_PORT wHttpServerPortNumber = DF_DEFAULT_HTTP_PORTNUMBER, // Keep-Alive <20><> <20><><EFBFBD>츸 <20><><EFBFBD><EFBFBD>
|
|||
|
|
LPCTSTR lpszUserName = NULL, // Keep-Alive <20><> <20><><EFBFBD>츸 <20><><EFBFBD><EFBFBD>
|
|||
|
|
LPCTSTR lpszPassword = NULL // Keep-Alive <20><> <20><><EFBFBD>츸 <20><><EFBFBD><EFBFBD>
|
|||
|
|
);
|
|||
|
|
VOID Close();
|
|||
|
|
BOOL IsOpen();
|
|||
|
|
INT RecvResponse(LPBYTE lpbtBuffer, INT nBufferSize);
|
|||
|
|
INT RecvDownFile(LPCTSTR lpszFileName, LPBINDSTATUSCALLBACK pCallBack);
|
|||
|
|
DWORD SetOption(DWORD dwMaxConnCount, DWORD dwTimout);
|
|||
|
|
|
|||
|
|
// One-Req,One-Rsp <20><><EFBFBD><EFBFBD> <20><EFBFBD><DEBC><EFBFBD>
|
|||
|
|
|
|||
|
|
// Keep-Alive <20><><EFBFBD><EFBFBD> <20><EFBFBD><DEBC><EFBFBD>
|
|||
|
|
BOOL ReOpen();
|
|||
|
|
INT SendRequest(LPCTSTR lpszUrl, BOOL bCheckResultDataLength = FALSE, BOOL bAsyncRequest = FALSE);
|
|||
|
|
INT SendRequsetPostA(LPCTSTR lpszUrl, LPCSTR szPostData); //Ansi<73><69> Post
|
|||
|
|
INT SendRequestGet(LPCTSTR lpszUrl);
|
|||
|
|
|
|||
|
|
LONG m_RefCount;
|
|||
|
|
LONG IncRefCount() { return(InterlockedIncrement(&m_RefCount)); }
|
|||
|
|
LONG DecRefCount() { return(InterlockedDecrement(&m_RefCount)); }
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
VOID Initialize();
|
|||
|
|
VOID Finalize();
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
// One-Req,One-Rsp / Keep-Alive <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
HINTERNET m_hInternet; // InternetOpen() <20><> <20>ڵ<EFBFBD><DAB5><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
HINTERNET m_hInternetConnection; // One-Req,One-Rsp : InternetOpenUrl() / Keep-Alive : InternetConnect() <20><> <20>ڵ<EFBFBD><DAB5><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
HINTERNET m_hHttpRequest; // Keep-Alive <20><><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
EF_HTTP_CONNECTION_TYPE m_eHttpConnectionMode;
|
|||
|
|
|
|||
|
|
// One-Req,One-Rsp <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// Keep-Alive <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
TCHAR m_szHttpServerAddress[MAX_PATH];
|
|||
|
|
INTERNET_PORT m_wHttpServerPortNumber;
|
|||
|
|
TCHAR m_szUserName[MAX_PATH];
|
|||
|
|
TCHAR m_szPassword[MAX_PATH];
|
|||
|
|
};
|
|||
|
|
|