首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

J2ME 網絡編程避坑:處理移動網關資費提醒頁面攔截

     編輯:Java 相關知識

中國移動 GPRS 網關會在特定時機攔截 HTTP 請求,返回 WML 資費提醒頁面(Content-Type: text/vnd.wap.wml),導致應用層收到非預期內容而判定請求失敗。解決策略:檢測響應頭,若為 WML 則重發請求。

核心代碼

HttpConnection httpConn = (HttpConnection) Connector.open(url, Connector.READ_WRITE, true);
String contentType = httpConn.getHeaderField("Content-Type");
if ("text/vnd.wap.wml".equals(contentType)) {
    // 資費頁面攔截,關閉當前連接並重試
    httpConn.close();
    httpConn = (HttpConnection) Connector.open(url, Connector.READ_WRITE, true);
}
// 正常處理 httpConn.openInputStream() ...

進階處理

  • 若業務本身返回 WML,需解析頁面關鍵字(如「資費提醒」、「確認」)區分是否為網關攔截。
  • 可提取 WML 中的 <a href="..."> 確認鏈接,自動模擬點擊完成確認流程。
  • 建議封裝為通用 HttpRequester 工具類,內建重試邏輯與內容類型校驗。

注意事項

  • 重試次數建議限制(如最多 2 次),避免無限循環。
  • HTTPS 請求同樣可能被攔截,邏輯一致。
  • 測試時需使用真實移動網絡環境,模擬器通常不會複現此行為。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved