2012-10-18 83 views
2

我做了一個應用程序,需要互聯網連接,以便我可以在我的應用程序中顯示一些數據。J2ME應用程序無法連接到互聯網在諾基亞c1-01

但是,當我在諾基亞c1-01測試我的應用程序時,它無法從我的服務器獲取數據,同時如果我在任何其他設備上檢查我的應用程序,他們很容易與互聯網連接,我可以看到我的應用程序。

這裏是我的代碼:

HttpConnection httpConn = null; 

    InputStream is = null; 
    OutputStream os = null; 
    StringBuffer sb = new StringBuffer(); 

    try { 
     // Open an HTTP Connection object 
     httpConn = (HttpConnection) Connector.open(url); 
     // Setup HTTP Request to POST 
     httpConn.setRequestMethod(HttpConnection.POST); 

     httpConn.setRequestProperty("User-Agent", 
       "Profile/MIDP-2.0 Confirguration/CLDC-1.1"); 
     httpConn.setRequestProperty("Accept_Language", "en-US"); 
     //Content-Type is must to pass parameters in POST Request 
     httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 

     os = httpConn.openOutputStream(); 



     os.write(params.getBytes()); 

     /**Caution: os.flush() is controversial. It may create unexpected behavior 
     on certain mobile devices. Try it out for your mobile device **/ 
     //os.flush(); 
     // Read Response from the Server 
     //StringBuffer sb = new StringBuffer(); 
     is = httpConn.openDataInputStream(); 
     int chr; 
     while ((chr = is.read()) != -1) { 
      sb.append((char) chr); 
     } 
    } finally { 
     if (is != null) { 
      is.close(); 
     } 
     if (os != null) { 
      os.close(); 
     } 
     if (httpConn != null) { 
      httpConn.close(); 
     } 
    } 

我有我的代碼更改,以便它可以在我的諾基亞C1-01運行?

回答

0

想到兩件事情。

第一個是微不足道的,並且與手機上的互聯網設置有關。我並不瞭解諾基亞C1,但我知道很多設備都有設備的互聯網設置+另一個用於Java的互聯網設置。確保Java的Internet設置正確。僅僅因爲您可以在手機上使用瀏覽器,並不意味着Internet連接適用於Java MIDlet。

您可以查看的第二件事情與Content-Type屬性有關。

我在開發一款遊戲時遇到了這個問題,該遊戲通過服務器上的PHP在我的網絡服務器上發送了高分。我發現它很奇怪,它在大多數我們的測試手機上工作得很好,而有一些問題。

輸出手機收到的數據後顯示404回覆(或類似的,這是一段時間)。

諮詢其他的JavaME開發後,我學會了這一點:

一些設備發送的特定指令到Web服務器:「你好,給我一些類型的文本/數據從data.php平原請」。 如果data.php包含一個頭('Content-type:text/plain'),那麼一切都很好。如果沒有,那麼服務器回覆:「對不起,我沒有任何文本/簡單的東西在該地址」。

這隻發生在一些設備上,因爲只有一些設備發送特定的請求。

因此,無論您在JavaME部分的setRequestProperty()中定義的Content-Type在您的服務器端腳本中都必須相同。

希望這兩件事情中的一個有幫助。 :-)

+0

非常感謝您的回答。但我使用下面顯示的代碼通過php從服務器獲取數據:<?php include('config.inc.php'); $ sql = mysql_query(「select * from tb_name」); while($ data = mysql_fetch_assoc($ sql)){echo $ data ['field1]; }?>那麼你能告訴我什麼我必須添加在我的PHP頁面? – dhrut

相關問題