工行网银查询接口完整版ssl

/**
         * 所有主机默认通过
        
*/
private static HostnameVerifier hnv = new HostnameVerifier() {
             
public boolean verify(String hostname, SSLSession session) {
              
return true;
              }
       };
      
/**
        * 关键在这信任所有证书
       
*/      
      
private static TrustManager[] trustAllCerts = new TrustManager[] {
               
new X509TrustManager() {
                   
public X509Certificate[] getAcceptedIssuers() {
                       
return null;
                    }
                   
public void checkServerTrusted(X509Certificate[] certs, String authType) {
                       
return;
                    }
                   
public void checkClientTrusted(X509Certificate[] certs, String authType) {
                       
return;
                    }
                }
//X509TrustManager
       };//TrustManager[]

String keyf
="F://test.pfx";
           
            String pass
="12345678";
           
//set up a connection
            SSLSocketFactory ssf=null;

            PrintWriter out
= null;
            BufferedReader in
= null;
            String result
= "";
           
try
            {
               
//init context
                SSLContext ctx=SSLContext.getInstance("TLS");           
                KeyManagerFactory kmf
=KeyManagerFactory.getInstance("SunX509");
                TrustManagerFactory tmf
=TrustManagerFactory.getInstance("SunX509");           
                KeyStore ks
=KeyStore.getInstance("PKCS12");

               
//load keystore

/*

*如果这里失败,请确认在jre/lib/sercurity中jce的两个包local_policy.jar和US_export_policy.jar是jce6,在java.sun.com中j2se的

additional downloads可以下载到,然后在项目是用bcprov-jdk16-144.jar。

*/


                ks.load(new FileInputStream(keyf),pass.toCharArray());
               
                kmf.init(ks,pass.toCharArray());
               
                ctx.init(kmf.getKeyManagers(),trustAllCerts,
null);
               
                System.out.println(
"load keystore success.");
                ssf
=ctx.getSocketFactory();
               
                HttpsURLConnection.setDefaultSSLSocketFactory(ssf);

                HttpsURLConnection.setDefaultHostnameVerifier(hnv);
               
                URL realUrl
= new URL(url);
               
               
//打开和URL之间的连接
                HttpsURLConnection conn = (HttpsURLConnection) realUrl.openConnection();

               
//设置通用的请求属性
                conn.setRequestProperty("accept", "*/*");
                conn.setRequestProperty(
"connection", "Keep-Alive");
                conn.setRequestProperty(
"user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
               
               
//发送POST请求必须设置如下两行
                conn.setDoOutput(true);
                conn.setDoInput(
true);
               
//获取URLConnection对象对应的输出流
                out = new PrintWriter(conn.getOutputStream());
               
//发送请求参数
                out.print(param);
               
//flush输出流的缓冲
                out.flush();
               
//定义BufferedReader输入流来读取URL的响应
                in = new BufferedReader(
               
new InputStreamReader(conn.getInputStream()));
                String line;
               
while ((line = in.readLine())!= null)
                {
                    result
+= "/n" + line;
                }
            }
           
catch(Exception e)
            {
                System.out.println(
"发送POST请求出现异常!" + e);
                e.printStackTrace();
            }
           
//使用finally块来关闭输出流、输入流
            finally
            {
               
try
                {
                   
if (out != null)
                    {
                        out.close();
                    }
                   
if (in != null)
                    {
                        in.close();
                    }
                }
               
catch (IOException ex)
                {
                    ex.printStackTrace();
                }
            }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值