2012-02-23 52 views
0

我開發了一個應用程序,點擊受保護的URL。當我使用「https」打開此URL時,我在模擬器中獲得「證書已過期」或在真實設備中獲得「證書失敗驗證」。以下是代碼片段:HTTPS in MIDLET

String loginUrl= "https://myhost.com/somefile"; 
HttpConnection httpConn = null; 
       DataOutputStream dataOS = null; 
       System.out.println("strModuleName.trim()::::" 
         + strModuleName.trim()); 

       httpConn = (HttpConnection) Connector.open(loginUrl);//, Connector.READ_WRITE); 
       httpConn.setRequestProperty("User-Agent", 
         "Profile/MIDP-2.0, Configuration/CLDC-1.0"); 
       httpConn.setRequestProperty("Connection", "Keep-Alive"); 
       httpConn.setRequestProperty("Content-Language", "en-US"); 
       httpConn.setRequestMethod(HttpConnection.POST);   
       dataOS = (DataOutputStream) httpConn.openDataOutputStream(); 
+0

不應該使用HttpsConnection而不是Http ...? – Kennet 2012-02-23 14:16:59

+0

嘗試HttpsConnection類,但仍然得到相同的錯誤 – happy 2012-02-24 04:24:57

回答

1

如果您使用的是HTTPS,則設備需要驗證您的服務器(myhost.com)已安裝的證書鏈。如果證書過期,那麼您需要通知網站站長,以便他可以修復它。

如果證書鏈是正確的,那麼設備必須根據設備本身已安裝的證書對其進行驗證。移動設備通常具有來自主要證書頒發機構(Verisign等)的證書。但是如果你的服務器的證書沒有安裝在設備上,你需要先安裝它才能建立HTTP連接。

+0

我已經通過wtk「管理證書」,但仍然不工作 – happy 2012-02-24 07:22:12

+1

在設備中導入服務器證書如何服務器的證書?你有沒有試過在http://www.ssltool.com/上驗證它? – 2012-02-24 12:41:45