WinInet類使用方法


使用WinInet類有許多優越之處,它提供了對GopherHTTPFTP等公共Internet協議的訪問方法,其中包括:

1)      CInternetSession

2)      CInternetConnection

3)      CInternetFile

4)      CHttpConnection

5)      CGopherFile

6)      CGopherConnection

7)      CFtpConnection

8)      CFileFind

9)      CFtpFileFind

10)   CGopherFileFind

11)   CGopherLocator

12)   CInternetException

使用WinInet類編程方法如下:

1.       創建CInternetSession類對象,創建並初始化Internet會話。

2.       建立CInternetSession對象與服務器的連接。該連接由CInternetConnect對象代表;可以通過CInternetSession::GetHttpConnectionCInternetSession::GetFTPConnectionCInternet::GetGopherConnection函數分別打開對應於三種特定協議的連接,它們分別由CInternetConnection的派生類CHttpConnectionCFtpConnectionCGopherConnection對象代表。

3.       在連接時,可以通過調用CInternetSession::QueryOptionCInternetSession::SetOption函數查詢或設置Internet請求選項。

4.       客戶應用程序在進行某些操作時,要耗費相當長的時間,因此有必要向用戶反饋當前數據處理的進程信息。這就需要派生自己的CInternetSession對象,重載OnStatusCallback函數實現回調程序的功能,並調用CInternetSession::EnableStatusCallback函數允許使用回調程序以監視會話的狀態。

5.       以上幾個步驟建立了客戶應用程序的工作環境,但它們並沒有對服務器進行任何操作,必須在此基礎上實現客戶應用程序的實際功能。通常客戶應用程序的主要功能是處理服務器的數據,因此應該獲得服務器的CInternetFile實例,可以通過兩種方法創建該實例:

1)         分別調用CGopherConnection::OpenFileCFtpConnection::OpenFileCHttpConnection::OpenRequest函數得到CInternetFileCGopherFileCHttpFile對象指針,其中CGopherFileCHttpFileCInternetFile和派生類,對於FTP直接使用基類CInternetFile,此外CHttpConnectionCFtpConnectionCGopherConnection對象由步驟2創建。

2)         另外一種更簡單的方法是:無需通過步驟2建立連接,直接通過調用CInternetSession::OpenURL,該函數解析指定的URL,建立與由URL所代表的服務器之間的連接,然后返回一個只讀的CInternetFile對象。該函數並不局限於某個特定的協議類型,它能夠處理任何FTP URLHTTP URLGopher URL或本地文件。

6.       得到服務器文件后,就可以通過調用文件對象的Read函數和Write函數讀取或寫入文件。正如前面所講,對於FTP,所使用的文件對象為CInternetFile類,而HTTPGopher則使用CInternetFile的派生類CHttpFileCGopherFile類對象。

7.       為了提高程序的容錯性和穩定性,對可能出現的問題進行處理是非常有必要的。對於Internet客戶,需要使用CInternetException類對象處理所有可知的常規的Internet異常類型。

8.       結束Internet會話,銷毀CInternetSession對象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM