推送通知时的MPNS错误请求(WP 8.1)

时间:2016-01-11 17:23:19

标签: java push-notification windows-phone-8.1 mpns

我目前正在为Windows Phone 8.1开发基于Cordova(版本4.0.0)的移动应用程序。

我从API Java-MPNS(来自notnoop的github)实现了Java代码,以便向我的设备发送通知。

当我将通知消息推送到MPNS时,我收到此错误:

HTTP / 1.1 400错误请求[内容长度:0,X-WNS-MSG-ID:50267BB8627BC17D,X-WNS-DEBUG-TRACE:DB5SCH101121935,严格传输 - 安全:max-age = 31536000 ; includeSubDomains,WWW-Authenticate:Bearer,Date:Thu,07 Jan 2016 09:13:01 GMT] org.apache.http.conn.BasicManagedEntity@1ab5b13

Windows Phone 8推送通知服务响应代码的文档中,此错误代码表示XML文档或通知URI格式错误。

这是我的通知URI:

https://db5.notify.windows.com/?token=AwYAAAC%2fHaOBh3zOgFjUbZuCSMgzXY29aQDT9wKfpkiPsd85WKBA8muqx4is4r1nBVXQOtRKqe5cc%2fxat7hq6sZBruvm6nQF7p9Sl71TIiqnGvlrdDDw6v0anax4bXUCtflPwEc%3d

这是XML文档(由Java类TileNotification中的Java-MPNS生成):

<?xml version="1.0" encoding="utf-8"?>
    <wp:Notification xmlns:wp="WPNotification">
        <wp:Tile>
            <wp:Count>1</wp:Count>
            <wp:Title>Demo App Windows</wp:Title>
            <wp:BackContent>New notification</wp:BackContent>
        </wp:Tile>
    </wp:Notification>

当我从如何发送和接收Windows Phone 8的平铺通知的文档中比较此XML文档和XML文档时,我看不出任何差异或错误。关于我的通知URI,我认为链接是正确的。

但是,http://db3.notify.live.nethttps://db5.notify.windows.com之间有什么区别?

是否有人已使用此API?你对如何解决这个问题有所了解吗?

1 个答案:

答案 0 :(得分:0)

* .infote.live.net是一个MPNS频道URI,而* .notify.windows.com是一个WNS频道URI。您正在获取WNS频道URI(您的应用设置为使用WNS的AKA),但您正在尝试使用MPNS。 400是因为WNS希望您使用OAuth进行身份验证。

我会仔细检查你是否真的想要使用MPNS而不是WNS来购买新应用。 MPNS在这一点上被认为是遗产。如果您想将应用程序移植到Windows,请在某个时刻构建UWP,您需要切换到WNS。更多详细信息/指导可在此处找到:https://msdn.microsoft.com/en-us/library/windows/apps/dn642085(v=vs.105).aspx

如果您确实需要使用MPNS,请确保使用MPNS API来请求您的频道:https://msdn.microsoft.com/en-us/library/windows/apps/microsoft.phone.notification(v=vs.105).aspx,而不是WNS API:https://msdn.microsoft.com/en-us/library/windows/apps/hh465412.aspx