在開發無線專案時,常需與電信業者進行 XML 資料交換,因此必須能動態抓取對方提供的固定網址資料。本文分享一個完整的 Java 類別實作,能夠透過 HTTP 協定取得指定 URL 的網頁原始碼,並支援 Proxy 伺服器設定與多種輸出模式。
GetPageCode 類別採用標準的 Java Bean 設計模式,包含私有變數區、公共屬性存取器、建構子與核心方法 GetSource()。核心邏輯使用 java.net.WebRequest 與 WebResponse 建立 HTTP 連線,透過 StreamReader 讀取回應串流,最後依據 OutFilePath 屬性決定寫入檔案或存入 OutString 屬性。
GetPageCode gpc = new GetPageCode();
gpc.Url = "https://example.com";
gpc.ProxyState = 1; // 1=使用 Proxy, 0=不使用
gpc.ProxyAddress = "proxy.company.com";
gpc.ProxyPort = "8080";
gpc.ProxyAccount = "username";
gpc.ProxyPassword = "password";
gpc.ProxyDomain = "corp";
gpc.OutFilePath = "C:/temp/page.html"; // 不設定則回傳字串
gpc.GetSource();
String errorMsg = gpc.NoteMessage; // 錯誤訊息
String htmlContent = gpc.OutString; // 回傳的 HTML 內容
程式碼中對 Proxy 設定做了完善處理:當 ProxyState=1 時,自動建立 WebProxy 物件並設定 NetworkCredential 進行認證。讀取串流時使用 Encoding.Default 確保中文內容正確解碼。檔案寫入前會檢查檔案是否存在並先刪除,避免殘留舊資料。
此方案適用於:網頁內容監控、資料同步擷取、API 回應記錄、自動化測試驗證等場景。可擴充方向包含:支援 HTTPS/SSL 憑證處理、加入連線逾時設定、支援 POST 方法與表單提交、整合 HTML 解析庫(如 Jsoup)直接提取結構化資料。