CHttpConnection 類別
管理您與 HTTP 伺服器的連接。
語法
class CHttpConnection : public CInternetConnection
成員
公用建構函式
名稱 | 描述 |
---|---|
CHttp連線ion::CHttp連線ion | 建立 CHttpConnection 物件。 |
公用方法
名稱 | 描述 |
---|---|
CHttp連線ion::OpenRequest | 開啟 HTTP 要求。 |
備註
HTTP 是 MFC WinInet 類別實作的三種網際網路伺服器通訊協定之一。
類別 CHttpConnection
包含建構函式和一個成員函 式 OpenRequest ,可管理與 HTTP 通訊協定的伺服器連線。
若要與 HTTP 伺服器通訊,您必須先建立 CInternetSession 的 實例,然後建立 CHttp連線ion 物件。 您永遠不會直接建立 CHttpConnection
物件,而是呼叫 CInternetSession::GetHttp連線ion ,這會建立 CHttpConnection
物件並傳回它的指標。
若要深入瞭解如何使用 CHttpConnection
其他 MFC 網際網路類別,請參閱使用 WinInet 進行網際網路程式設計一文 。 如需使用其他兩種支援的網際網路通訊協定來連線到伺服器的詳細資訊,請參閱 CGopher連線ion 和 CFtp連線ion 類別 。
繼承階層架構
CHttpConnection
需求
標頭: afxinet.h
CHttp連線ion::CHttp連線ion
呼叫這個成員函式來建構 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 物件的指標 。
h連線ed
網際網路連線的控制碼。
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 值的描述 ,請參閱 CHttp 的<備註>備註> >一節 中的 表格連線ion::OpenRequest 。
備註
您永遠不會直接建立 CHttpConnection
。 相反地,您可以呼叫 CInternetSession::GetHttp連線ion 來建立物件。
CHttp連線ion::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 類別
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應