CInternetSession
CObject |
└CInternetSession |
如果Internet連線必須在套用過程中保持著,可創建一個類CWinApp的CInternetSession成員。一旦已建立起Internet 會話,就可調用OpenURL。CInternetSession會通過調用全局函式AfxParseURL來為分析映射URL。無論協定類型如何,CInternetSession 解釋URL並管理它。它可處理由URL資源“file://”標誌的本地檔案的請求。如果傳給它的名字是本地檔案,OpenURL 將返回一個指向CStdioFile對象的指針。
如果使用OpenURL在Internet伺服器上打開一個URL,你可從此處讀取信息。如果要執行定位在伺服器上的指定的服務(例如,HTTP,FTP或Gopher)行為,必須與此伺服器建立適當的連線。直接打開與指定的伺服器的指定的類型的連線,請使用下列成員函式:
·GetGopherConnection | 打開與Gopher服務的連線。 |
·GetHttpConnection | 打開與HTTP服務的連線。 |
·GetFtpConnection | 打開與FTP服務的連線。 |
QueryOption和SetOption允許設定會話的查詢選項,如逾時值、再試次數等等。
Internet會話過程中,象查找或數據下載這樣的事務處理會占用一定的時間。使用者可能想繼續工作,或獲得事務處理進程的狀態信息。為解決這個問題,CInternetSession可以讓查找和數據傳輸異步發生,允許使用者在傳輸結束時進行其它任務。如果要為使用者提供狀態信息,或異步處理任意操作,必須設定三個條件:
· | 在構造函式中,dwFlags必須包括INTERNET_FLAG_ASYNC。 |
· | 在構造函式中,dwContext必須設定為1。 |
· | 必須通過調用EnableStatusCallback來建立回調函式。 |
使用覆蓋成員函式OnStatusCallback來獲得異步獲取的狀態信息。使用此覆蓋成員函式,必須從CInternetSession派生你自己的類。
注意:
CInternetSession將為不支持的服務類型產生一個AfxThrowNotSupportedException。當前只支持下列服務類型:FTP,HTTP,Gopher和檔案。
#include <afxinet.h>
請參閱:
CInternetConnection, CHttpConnection, CFtpConnection, CGopherConnection
CInternetSession類的成員
構造函式
CInternetSession | 構造一個CInternetSession對象 |
屬性
QueryOption | 為錯誤檢查提供可能的斷言 |
SetOption | 為Internet會話設定選項 |
OpenURL | 文法分析映射並打開一個URL |
GetFtpConnection | 打開一個與伺服器的FTP會話。寫入用戶日誌 |
GetHttpConnection | 為試圖打開連線的套用打開一個HTTP伺服器 |
GetGopherConnection | 為試圖打開連線的套用打開一個Gopher伺服器 |
EnableStatusCallback | 建立一個狀態回調例程。異步操作需要EnableStatusCallback |
ServiceTypeFromHandle | 從Internet句柄中得到伺服器類型 |
操作
GetContext | 為Internet或套用會話獲得上下文的值 |
Close | 當Internet會話終止時關閉Internet連線 |
SetCookie | 為指定的URL設定小程式 |
GetCookie | 返回指定的URL的小程式及其所有父URL |
GetCookieLength | 獲取確定存儲在緩衝區的小程式的長度的變數 |
可覆蓋的函式
OnStatusCallback | 當狀態回調有效時,更新操作狀態 |
操作符
operator HINTERNET | 當前Internet會話的句柄 |