我开发了一个应用程序,该应用程序可以访问受保护的URL。当我使用“ https”访问此URL时,我在模拟器中得到“证书已过期”或在真实设备中得到“证书失败验证”。以下是代码片段:
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();
最佳答案
如果使用的是HTTPS,则设备需要验证服务器(myhost.com)已安装的证书链。如果证书已过期,则需要将此信息告知网站管理员,以便他可以对其进行修复。
如果证书链正确,则设备必须针对设备本身已安装的证书进行验证。通常,移动设备会获得主要证书颁发机构(Verisign等)的证书。但是,如果设备中未安装服务器的证书,则需要先安装它以建立HTTP连接。