在 JAVA 中使用 jks 文件使用 Restful APIS 时,错误为获取 UNKNOWHOST EXCEPTION

问题描述

如何在java(https url)中使用cer文件调用Restful API。所以我使用以下命令将 cer 文件生成为 jks 文件

keytool -importcert -file D:\onmagcert.cer -keystore D:\server_npcikeystore.jks -alias "abc1234"

然后我在 HTTPSURL 连接中添加了密钥库文件,但得到“未知异常”请有人帮助我

    JSONObject jsobj=new JSONObject();
        jsobj.put("BankID","ABCD");
        String str_jsonparams = String.valueOf(jsobj);
        System.out.println("PU_Auth str_jsonparams->"+str_jsonparams);
        appPathCertificate="D:/server_npcikeystore.jks";
        System.out.println("appPathCertificate--->"+appPathCertificate);
         char[] passphrase = "cedge1".tochararray(); //password
         KeyStore keystore = KeyStore.getInstance("JKS");
         keystore.load(new FileInputStream(appPathCertificate),passphrase); //path
         TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
         tmf.init(keystore);
         SSLContext context = SSLContext.getInstance("TLS");
         TrustManager[] trustManagers = tmf.getTrustManagers();
         context.init(null,trustManagers,null);
         SSLSocketFactory sf = context.getSocketFactory();
         URL url = new URL("https://enachuat.npci.org.in:8086/stsBankResponse");
        System.setProperty("javax.net.ssl.keyStore",appPathCertificate);
        System.setProperty("javax.net.ssl.keyStorePassword","cedge1");
        System.setProperty("javax.net.ssl.keyStoreType","JKS");            

            HttpsURLConnection  conn = (HttpsURLConnection ) url.openConnection();
            conn.setSSLSocketFactory(sf);
            conn.setDoInput(true);
            conn.setDoOutput(true);
            conn.setRequestMethod("POST");
            conn.setUseCaches (false);
            OutputStream os = conn.getoutputStream();
            os.write(str_jsonparams.getBytes());
            os.flush();
            System.out.println("Response code :"+conn.getResponseCode());
            conn.disconnect();

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)