在網絡編程中,獲取遠程網頁的原始 HTML 源碼是一項基礎且實用的技術。本文將介紹如何利用 MFC 的 CInternetSession 與 CHttpFile 類,在基於對話框的應用程式中實現網頁內容的抓取與顯示。
首先,需在專案的預編譯標頭檔 stdafx.h 中引入網絡擴展標頭:
#include <afxinet.h>
這將使 CInternetSession 等類可用。接著在按鈕點擊或相應事件處理函數中編寫核心邏輯:
CInternetSession 物件。OpenURL() 方法,取得 CHttpFile* 指標。ReadString() 迴圈將網頁原始碼累加到 CString 變數中。UpdateData(FALSE) 將讀取到的內容同步到編輯控制項。// 交換控制項與變數資料,清空顯示區
UpdateData(TRUE);
m_SiteInfo = _T("");
UpdateData(FALSE);
// 建立會話並連線
CInternetSession mySession(NULL, 0);
CHttpFile* myHttpFile = NULL;
m_SiteInfo = _T("連接到站點 ") + m_SiteName + _T("\r\n");
UpdateData(FALSE);
CString myData;
myHttpFile = (CHttpFile*)mySession.OpenURL(m_SiteName);
while (myHttpFile->ReadString(myData)) {
m_SiteInfo += _T("\r\n") + myData;
}
myHttpFile->Close();
mySession.Close();
UpdateData(FALSE); // 將完整源碼顯示到介面

圖一 示例代碼運行效果圖
本範例展示了 MFC 封裝 WinInet API 的便利性,開發者可在此基礎上擴展錯誤處理、超時設定、POST 資料提交等進階功能,快速構建網絡資料採集工具。