中國移動 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() ...
<a href="..."> 確認鏈接,自動模擬點擊完成確認流程。HttpRequester 工具類,內建重試邏輯與內容類型校驗。