public String callMemberInfoInterface(String request) throws Exception { if (logger.isInfoEnabled()) { logger.info("callMemberInfoInterface request : " + request); } // First create a trust manager that won't care. X509TrustManager trustManager = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { // Don't do anything. }
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { // Don't do anything. }
public X509Certificate[] getAcceptedIssuers() { // Don't do anything. return null; }
}; // Now put the trust manager into an SSLContext. SSLContext sslcontext = SSLContext.getInstance("SSL"); sslcontext.init(null, new TrustManager[] { trustManager }, null);
// Use the above SSLContext to create your socket factory // (I found trying to extend the factory a bit difficult due to a // call to createSocket with no arguments, a method which doesn't // exist anywhere I can find, but hey-ho). SSLSocketFactory sf = new SSLSocketFactory(sslcontext); sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
DefaultHttpClient httpclient = new DefaultHttpClient(); httpclient.getConnectionManager().getSchemeRegistry().register(new Scheme("https", sf, 443));
HttpGet httpPost = new HttpGet(request); String result = ""; // Execute HTTP request httpPost.setHeader("Authorization", "basic " + "dGNsb3VkYWRtaW46dGNsb3VkMTIz"); httpPost.setHeader("Content-type", "application/xml");
char[] buff = new char[1024]; int length = 0; while ((length = reader.read(buff)) != -1) { result += new String(buff, 0, length); } httpclient.getConnectionManager().shutdown();
if (logger.isInfoEnabled()) { logger.info("callMemberInfoInterface >>>:" + new String(result.getBytes("GBK"), "UTF-8")); } return result; }