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

Java 推送通知时MPNS错误请求(WP 8.1),java,push-notification,windows-phone-8.1,mpns,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:DB5SCH1012935,严格传输安全性:最大年龄=31536000;包括子域,WWW-Auth

我目前正在为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:DB5SCH1012935,严格传输安全性:最大年龄=31536000;包括子域,WWW-Authenticate:Bearer,日期:2016年1月7日星期四09:13:01 GMT]org.apache.HTTP.conn。BasicManagedEntity@1ab5b13

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

以下是我的通知URI:

以下是XML文档(由Java MPNS从Java类TileNotification生成):


1.
演示应用程序窗口
新通知
当我将此XML文档与关于如何发送和接收Windows Phone 8的磁贴通知的文档中的XML文档进行比较时,我没有发现任何差异或错误。关于我的通知URI,我认为链接是正确的

但是,和之间的区别是什么


是否有人已经使用此API?您知道如何修复它吗?

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

如果你真的想在新应用中使用MPNS而不是WNS,我会仔细检查一下。MPNS在这一点上被认为是遗留的。如果你想在某个时候将你的应用移植到Windows构建UWP,你需要切换到WNS。更多详细信息/指南可在此处找到:


如果确实需要使用MPNS,请确保使用MPNS API来请求频道:,而不是WNS API:。

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

如果你真的想在新应用中使用MPNS而不是WNS,我会仔细检查一下。MPNS在这一点上被认为是遗留的。如果你想在某个时候将你的应用移植到Windows构建UWP,你需要切换到WNS。更多详细信息/指南可在此处找到:


如果您确实需要使用MPNS,请确保您使用的是MPNS API来请求您的频道:,而不是WNS API:。

谢谢您的帮助!我想从你的解释中得到更多的信息。我使用的JavaAPI只支持MPNS。但是,我如何知道我的Windows Phone是Silverlight或Universal的目标?我正在用Cordova开发一个混合移动应用程序。问题来自于我用来获取通道URI的API Javascript(API的名称是phonegap plugin push for Cordova support)。然后这个插件使用WNS。当我的移动应用程序将在Windows应用商店中时,我应该使用Azure通知平台?嗨,Paulo,我不熟悉Cordova,但我假设您在项目中的某个地方有一个WMAppManifest.xml?如果是这样,可以在XML编辑器中打开它并检查NotificationService属性。如果值为“MPN”,则您使用的是MPN,应使用Windows.Phone.Notification API。如果该值为“WNS”,则您应该使用Windows.UI.Notifications来回答有关使用Azure通知中心的问题,您无需使用该值。您可以直接在WNS/MPNS API之上构建,也可以使用各种其他服务来帮助您推动跨平台(Parse、Urban Airship、Pushwoosh等)谢谢你们的回答@MattHidinger是的,当然,我的cordova项目中有一个WMAppManifest.xml文件。此文件的名称不同,但没关系。所以,我检查了这个文件,但没有找到这个属性。我想我必须在这个文件中添加这个属性?我检查了文档,我想我把这个属性“ID\u CAP\u PUSH\u NOTIFICATION”作为功能放在了appmanifest文件中。好的,我可以继续使用Java API。谢谢你提到的不同服务。@PauloDev你在哪里能解决这个问题?我也有同样的问题,我正在开发一个Cordova应用程序,谢谢你的帮助!我想从你的解释中得到更多的信息。我使用的JavaAPI只支持MPNS。但是,我如何知道我的Windows Phone是Silverlight或Universal的目标?我正在用Cordova开发一个混合移动应用程序。问题来自于我用来获取通道URI的API Javascript(API的名称是phonegap plugin push for Cordova support)。然后这个插件使用WNS。当我的移动应用程序将在Windows应用商店中时,我应该使用Azure通知平台?嗨,Paulo,我不熟悉Cordova,但我假设您在项目中的某个地方有一个WMAppManifest.xml?如果是这样,可以在XML编辑器中打开它并检查NotificationService属性。如果值为“MPN”,则您使用的是MPN,应使用Windows.Phone.Notification API。如果该值为“WNS”,则您应该使用Windows.UI.Notifications来回答有关使用Azure通知中心的问题,您无需使用该值。您可以直接在WNS/MPNS API之上构建,也可以使用各种其他服务来帮助您推动跨平台(Parse、Urban Airship、Pushwoosh等)谢谢你们的回答@MattHidinger是的,当然,我的cordova项目中有一个WMAppManifest.xml文件。此文件的名称不同,但没关系。所以,我检查了这个文件,但没有找到这个属性。我想我必须在这个文件中添加这个属性?我查文件
<?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>