2

我正在尝试使用 JavaPNS 2.2 通过代理推送到苹果设备。我的 java 应用程序在防火墙后面的 jBoss 上运行,与苹果服务器通信的唯一方法是通过该代理。

 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/

4

1 回答 1

1

最后,我使它与 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

于 2012-11-27T07:37:14.707 回答