CHttpConnection 類別
管理您與 HTTP 伺服器的連接。
語法
class CHttpConnection : public CInternetConnection
成員
公用建構函式
名稱 | 描述 |
---|---|
CHttpConnection::CHttpConnection | 建立 CHttpConnection 物件。 |
公用方法
名稱 | 描述 |
---|---|
CHttpConnection::OpenRequest | 開啟 HTTP 要求。 |
備註
HTTP 是 MFC WinInet 類別實作的三種因特網伺服器通訊協定之一。
類別 CHttpConnection
包含建構函式和一個成員函 式 OpenRequest,可管理與 HTTP 通訊協定的伺服器連線。
若要與 HTTP 伺服器通訊,您必須先建立 CInternetSession 的實例,然後建立 CHttpConnection 物件。 您永遠不會直接建立 CHttpConnection
物件,而是呼叫 CInternetSession::GetHttpConnection,這會建立 CHttpConnection
物件並傳回它的指標。
若要深入瞭解如何使用CHttpConnection
其他 MFC 因特網類別,請參閱使用 WinInet 進行因特網程式設計一文。 如需使用其他兩種支援的因特網通訊協議來連線到伺服器的詳細資訊,請參閱 CGopherConnection 和 CFtpConnection 類別。
繼承階層架構
CHttpConnection
需求
標頭: afxinet.h
CHttpConnection::CHttpConnection
呼叫這個成員函式來建構 CHttpConnection
物件。
CHttpConnection(
CInternetSession* pSession,
HINTERNET hConnected,
LPCTSTR pstrServer,
DWORD_PTR dwContext);
CHttpConnection(
CInternetSession* pSession,
LPCTSTR pstrServer,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
LPCTSTR pstrUserName = NULL,
LPCTSTR pstrPassword = NULL,
DWORD_PTR dwContext = 1);
CHttpConnection(
CInternetSession* pSession,
LPCTSTR pstrServer,
DWORD dwFlags,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
LPCTSTR pstrUserName = NULL,
LPCTSTR pstrPassword = NULL,
DWORD_PTR dwContext = 1);
參數
pSession
CInternetSession 物件的指標。
hConnected
因特網聯機的句柄。
pstrServer
包含伺服器名稱之字串的指標。
dwContext
對象的內容識別碼 CInternetConnection
。 如需 dwContext 的詳細資訊,請參閱一節。
nPort
識別此連線之因特網埠的數位。
pstrUserName
Null 終止字串的指標,指定要登入的用戶名稱。 如果為 NULL,則預設值為匿名。
pstrPassword
Null 終止字串的指標,指定要用來登入的密碼。 如果 pstrPassword 和 pstrUserName 都是 NULL,則預設的匿名密碼是使用者的電子郵件名稱。 如果 pstrPassword 為 NULL 或空字串,但 pstrUserName 不是 NULL,則會使用空白密碼。 下表描述 pstrUserName 和 pstrPassword 四種可能設定的行為:
pstrUserName | pstrPassword | 傳送至 FTP 伺服器的使用者名稱 | 傳送至 FTP 伺服器的密碼 |
---|---|---|---|
NULL 或 ” | NULL 或 ” | “anonymous” | 使用者的電子郵件名稱 |
非 NULL 字串 | NULL 或 ” | pstrUserName | " " |
NULL | 非 NULL 字串 | 錯誤 | 錯誤 |
非 NULL 字串 | 非 NULL 字串 | pstrUserName | pstrPassword |
dwFlags
INTERNET_FLAG_*
旗標的任意組合。 如需 dwFlags 值的描述,請參閱 CHttpConnection::OpenRequest<備註>一節中的表格。
備註
您永遠不會直接建立 CHttpConnection
。 相反地,您可以呼叫 CInternetSession::GetHttpConnection 來建立物件。
CHttpConnection::OpenRequest
呼叫此成員函式以開啟 HTTP 連線。
CHttpFile* OpenRequest(
LPCTSTR pstrVerb,
LPCTSTR pstrObjectName,
LPCTSTR pstrReferer = NULL,
DWORD_PTR dwContext = 1,
LPCTSTR* ppstrAcceptTypes = NULL,
LPCTSTR pstrVersion = NULL,
DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT);
CHttpFile* OpenRequest(
int nVerb,
LPCTSTR pstrObjectName,
LPCTSTR pstrReferer = NULL,
DWORD_PTR dwContext = 1,
LPCTSTR* ppstrAcceptTypes = NULL,
LPCTSTR pstrVersion = NULL,
DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT);
參數
pstrVerb
字串的指標,其中包含要求中使用的動詞。 如果為 NULL,則會使用 「GET」。。
pstrObjectName
字串的指標,包含指定動詞命令的目標物件。 此字串通常是檔名、可執行模組或搜尋規範。
pstrReferer
字串的指標,指定從中取得要求中 URL 之文件的位址(URL)(pstrObjectName)。 如果為 NULL,則未指定 HTTP 標頭。
dwContext
作業的內容識別碼 OpenRequest
。 如需 dwContext 的詳細資訊,請參閱一節。
ppstrAcceptTypes
以 Null 結束之 LPCTSTR 指標陣列的指標,指向表示用戶端所接受內容類型的字串。 如果 ppstrAcceptTypes 為 NULL,伺服器會解譯用戶端只接受類型為 「text/*」 的檔(也就是只有文字檔,而不是圖片或其他二進位檔)。 內容類型相當於 CGI 變數CONTENT_TYPE,可識別已附加資訊的查詢資料類型,例如 HTTP POST 和 PUT。
pstrVersion
定義 HTTP 版本的字串指標。 如果為 NULL,則會使用 「HTTP/1.0」。。
dwFlags
INTERNET_ FLAG_* 旗標的任何組合。 如需可能 dwFlags 值的描述,請參閱一節。
nVerb
與 HTTP 要求類型相關聯的數位。 可以是下列其中一項:
HTTP 要求類型 | nVerb 值 |
---|---|
HTTP_VERB_POST | 0 |
HTTP_VERB_GET | 1 |
HTTP_VERB_HEAD | 2 |
HTTP_VERB_PUT | 3 |
HTTP_VERB_LINK | 4 |
HTTP_VERB_DELETE | 5 |
HTTP_VERB_UNLINK | 6 |
傳回值
要求的 CHttpFile 物件的指標。
備註
dwFlags 可以是下列其中一項:
因特網旗標 | 描述 |
---|---|
INTERNET_FLAG_RELOAD | 強制從源伺服器下載要求的檔案、對象或目錄清單,而不是從快取下載。 |
INTERNET_FLAG_DONT_CACHE | 不會將傳回的實體新增至快取。 |
INTERNET_FLAG_MAKE_PERSISTENT | 將傳回的實體新增至快取作為持續性實體。 這表示標準快取清除、一致性檢查或垃圾收集無法從快取中移除此專案。 |
INTERNET_FLAG_SECURE | 使用安全的交易語意。 它會轉譯成使用SSL/PCT,而且只有在 HTTP 要求中才有意義 |
INTERNET_FLAG_NO_AUTO_REDIRECT | 僅搭配 HTTP 使用,指定不應該在 CHttpFile::SendRequest 中自動處理重新導向。 |
覆寫預設值, dwContext
將內容識別碼設定為您選擇的值。 內容標識符會與其 CInternetSession 物件所建立之CHttpConnection
對象的這個特定作業相關聯。 此值會傳回至 CInternetSession::OnStatusCallback ,以提供其識別作業的狀態。 如需內容標識碼的詳細資訊,請參閱因特網第一個步驟:WinInet 一文。
這個函式可能會擲回例外狀況。
另請參閱
CInternetConnection 類別
階層架構圖表
CInternetConnection 類別
CHttpFile 類別