M$所提供的WinInet開發包是作為ActiveX技術中的一部分,後來MS對WinInet API進行了包裝並提供了相應的MFC類。WinNet開發包的作用是提供了對HTTP FTP Gopher協議的支持,使開發者在開發Internet程序時避免編寫底層協議相關的代碼。此外WinInet很多功能都是與IE有聯系的,比如說可以使用IE中的設置和使用IE緩存中的數據。本節主要將內容集中在HTTP協議的使用上。
WinInet中的CInternetSession是管理會話的類,一般來講如果要使用WinInet功能都需要建立一個會話,然後在該會話的基礎上使用數據存取功能。CInternetSession的構造函數中接收四個參數 CInternetSession( LPCTSTR pstrAgent = NULL, //應用程序名,可以自己定義
DWORD dwContext = 1, //上下文標記,如果使用回調功能時這個值將給傳送給回調函數
DWORD dwAccessType = INTERNET_OPEN_TYPE_PRECONFIG, //
LPCTSTR pstrProxyName = NULL, //CERN代理服務器地址,一般設置為NULL
LPCTSTR pstrProxyBypass = NULL, //代理服務器地址
DWORD dwFlags = 0 );//標記,一般設置為0
dwAccessType可以為:
當dwAccessType為INTERNET_OPEN_TYPE_PROXY時指明代理服務器地址。
dwFlags可以為:
在建立會話後就可以利用CInternetSession::OpenURL打開一個URL,並讀取數據,函數原型為:
CStdioFile* OpenURL( LPCTSTR pstrURL, //文件URL地址
DWORD dwContext = 1, //上下文ID
DWORD dwFlags = INTERNET_FLAG_TRANSFER_ASCII, //標記
LPCTSTR pstrHeaders = NULL, //發送到服務器的數據頭
DWORD dwHeadersLength = 0 );//發送到服務器的數據頭長度
dwFlags可以為: