我正在尝试使用JavaPNS 2.2通过代理推送到Apple设备。我的Java应用程序在防火墙后面的jBoss上运行,与Apple Serv通信的唯一方法是通过该代理。
public ApplePushNotification(File certificate){
super();
ProxyManager.setProxy("myproxy", "myport");
this.certificate = certificate;
}
我收到此异常。
javapns.communication.exceptions.CommunicationException: Communication exception: java.io.IOException: Unable to tunnel through. Proxy returns "HTTP/1.1 407 Proxy Authentication Required ( Forefront TMG requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )"
因此,我阅读了ProxyManager.java文件以查找授权方式。我找到了这个:
/**
* Configure the authorization for the proxy configured through the setProxy method.
*
* @param username the user name to use
* @param password the password to use
*/
public static void setProxyBasicAuthorization(String username, String password) {
setProxyAuthorization(encodeProxyAuthorization(username, password));
}
我试图使用像
ProxyManager.setProxy("myproxy", "myport");
这样的静态方法,但我无法使用它。我真的很感谢您的帮助。谢谢
附加链接:
http://code.google.com/p/javapns/source/browse/trunk/src/javapns/communication/ProxyManager.java
http://code.google.com/p/javapns/
最佳答案
最后,我将其与JavaPNS 2.3 Beta一起使用。
ProxyManager.setProxy("myProxy", "myPort");
ProxyManager.setProxyBasicAuthorization("username", "password");
如果要使其与JavaPNS 2.2一起运行,则需要自己实现。但是使用2.3是更容易的方法。只需将javaPNS_2.3_Beta_2.jar作为库包含到您的项目中即可。
https://github.com/azinman/javapns/blob/master/JavaPNS_2.3_Beta_2.jar?raw=true