自中國移動啟動上網資費頁面提醒後,導致了很多的J2ME聯網出現了聯不上服務器的問題。即在j2me程序中啟動聯網後,在有些地區,有些時候,移動網關會把我們的請求截下,返還一個資費提醒的頁面給我們,這樣我們的服務器將不會收到我們的請求,導致程序出現聯網失敗的錯誤。
因此我們在處理網絡連接時要加入對移動資費頁面的處理,我們可以在發送網絡請求後,對返回的response進行http頭的檢測,如果我們檢測到返回的content-type是text/vnd.wap.wml,我們可以扔掉這個response,重新發起一次請求就可以解決資費頁面的問題,或者我們也可以提取出資費頁面裡面的請求地址,再次發送一次請求。
處理的代碼如下:
httpConn = (HttpConnection) Connector.open (url, permissions, true);
String s=httpConn.getHeaderField("Content-Type");
if(s.equals("text/vnd.wap.wml")){
//重新發起一次請求
httpConn = (HttpConnection) Connector.open (url, permissions, true);
}
如果程序本來要返回的類型就是WAP頁面,那我們可以對WAP頁面的內容進行關鍵字解析來判斷是自己服務器返回的頁面還是移動返回的資費提醒頁面再進行處理。