您好,我正嘗試使用Java向我的設備發送推送消息。但是我在建立ssl連接時已經遇到了問題。 這是迄今爲止代碼:通過Java與Apple推送通知服務器進行SSL握手
KeyStore keyStore = KeyStore.getInstance("PKCS12");
InputStream key = getClass().getResourceAsStream("apns-dev-key.p12");
char[] c = key.toString().toCharArray();
keyStore.load(getClass().getResourceAsStream("apns-dev-cert.p12"), c);
KeyManagerFactory keyMgrFactory = KeyManagerFactory.getInstance("SunX509");
keyMgrFactory.init(keyStore, c);
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyMgrFactory.getKeyManagers(), null, null);
SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
SSLSocket sslSocket = (SSLSocket) sslSocketFactory.createSocket(host, port);
String[] cipherSuites = sslSocket.getSupportedCipherSuites();
sslSocket.setEnabledCipherSuites(cipherSuites);
sslSocket.startHandshake();
我得到的錯誤是:
java.io.IOException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded
我想有一些問題與APNS-DEV-key.p12文件。任何提示?
上面的代碼摘自:http://undermypalapa.wordpress.com/2009/08/23/apple-push-notification-service-java/
好吧,我現在正在工作。問題是我試圖使用apns-dev-key.p12。但我所需要做的就是使用推送證書(包含證書和密鑰的p12文件)並使用我在導出證書時創建的密碼。 – Pathos 2012-02-23 10:38:02