如何解决在 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 举报,一经查实,本站将立刻删除。