调用 远程 HTTPS网址时出错,我也注册了https,可为啥还是不行呢,源代码哪下:
HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
SchemeRegistry registry = new SchemeRegistry();   
SSLSocketFactory socketFactory = SSLSocketFactory.getSocketFactory();   
socketFactory.setHostnameVerifier((X509HostnameVerifier) hostnameVerifier);   
registry.register (new Scheme ("http", PlainSocketFactory.getSocketFactory (), 80));
registry.register (new Scheme ("https", socketFactory, 443));   
DefaultHttpClient client = new DefaultHttpClient();   

SingleClientConnManager mgr = new SingleClientConnManager(client.getParams(), registry);   
DefaultHttpClient httpClient = new DefaultHttpClient(mgr, client.getParams());   
HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier); 

//ApiCallWithNoAuth apicall = new ApiCallWithNoAuth(httpClient);

HttpPost httpPost = new HttpPost("https://zwosft.com/02/tts.htm");

// 添加Body参数
List<NameValuePair> lstParams = new ArrayList<NameValuePair>(2); 
lstParams.add(new BasicNameValuePair("Pid", ConstantsUtil.Mobisage_publishID)); 
lstParams.add(new BasicNameValuePair("Key", "baidu")); 
httpPost.setEntity(new UrlEncodedFormEntity(lstParams)); 

// 添加 header头
Header []headers = new BasicHeader[] {
new BasicHeader("Content-Type","application/x-www-form-urlencoded"),
new BasicHeader("Host","config.adsage.com")().getContentLength())
};
httpPost.setHeaders(headers);

// 发送请求,并取返回值 
//String res = apicall.doHttpPost(httpPost);
HttpResponse response = httpClient.execute(httpPost);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {   
String res = EntityUtils.toString(response.getEntity());
Log.i("WeiBo", res);
}以下是错误代码:
11-13 16:37:04.659: ERROR/AndroidRuntime(27823): java.lang.RuntimeException: javax.security.cert.CertificateException: org.apache.harmony.security.asn1.ASN1Exception: ASN.1 UTCTime: wrong format for DER, identifier at [139]
11-13 16:37:04.659: ERROR/AndroidRuntime(27823):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:674)
11-13 16:37:04.659: ERROR/AndroidRuntime(27823):     at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)
11-13 16:37:04.659: ERROR/AndroidRuntime(27823):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:474)
11-13 16:37:04.659: ERROR/AndroidRuntime(27823):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:328)
11-13 16:37:04.659: ERROR/AndroidRuntime(27823):     at android.net.http.CertificateChainValidator.doHandshakeAndValidateServerCertificates(CertificateChainValidator.java:86)
11-13 16:37:04.659: ERROR/AndroidRuntime(27823):     at android.net.http.HttpsConnection.openConnection(HttpsConnection.java:332)
11-13 16:37:04.659: ERROR/AndroidRuntime(27823):     at android.net.http.Connection.openHttpConnection(Connection.java:479)
11-13 16:37:04.659: ERROR/AndroidRuntime(27823):     at android.net.http.Connection.processRequests(Connection.java:297)
11-13 16:37:04.659: ERROR/AndroidRuntime(27823):     at android.net.http.ConnectionThread.run(ConnectionThread.java:144)
11-13 16:37:04.659: ERROR/AndroidRuntime(27823): Caused by: javax.security.cert.CertificateException: org.apache.harmony.security.asn1.ASN1Exception: ASN.1 UTCTime: wrong format for DER, identifier at [139]
11-13 16:37:04.659: ERROR/AndroidRuntime(27823):     at javax.security.cert.X509Certificate.getInstance(X509Certificate.java:104)
11-13 16:37:04.659: ERROR/AndroidRuntime(27823):     at javax.security.cert.X509Certificate.getInstance(X509Certificate.java:223)
11-13 16:37:04.659: ERROR/AndroidRuntime(27823):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:658)
11-13 16:37:04.659: ERROR/AndroidRuntime(27823):     ... 8 more