2011-05-26 45 views
2

我从应用程序获取了我的网址。它开始于:使用示例代码推送通知时出现404错误

http://sn1.notify.live.net/throttledthirdparty/01.00/ 

,如果我使用的浏览器导航到该URL,我得到的消息:

Microsoft Push Notification Server 

然后我抓住了微软提供的代码。

http://msdn.microsoft.com/en-us/library/ff402545%28v=VS.92%29.aspx 

我若C#代码,并把它作为是(仅改变URL,有效载荷是一个空字节数组,以及改变“”字符串Guid.NewGuid()。toString()方法

,我收到了404每次。

因为我不从浏览器中得到404,内容必须无所谓了,推送通知服务器都依赖于内容,所以如果我将其更改为一个简单的原始通知通过删除通知消息并添加(如他们推荐):

 byte[] notificationMessage = new byte[] {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08}; 
     sendNotificationRequest.Headers.Add("X-NotificationClass", "13"); 

我每次还是得到404。我试着用相同的结果做吐司通知。

我在做什么错?

回答

0

我最终得到我的Toast通知结合后壳工作。我有一个方法可以做到,但在某些情况下不会调用该方法。

1

你得到404的原因是因为你发送的notificationMessage数据不是它期望的。试试看看它是否有效。

你可以在这里找到一个教程: http://benjii.me/2011/04/push-notifications-in-windows-phone-7-3-push-that-notification/

string template = 
     "<?xml version='1.0' encoding='utf-8'?>" + 
     "<wp:notification xmlns:wp='WPNotification'>" + 
      "<wp:toast>" + 
       "<wp:text1>{0}</wp:text1>" + 
       "<wp:text2>{1}</wp:text2>" + 
      "</wp:toast>" + 
     "</wp:notification>"; 

string toastXML = string.Format(template, "Testing", "This is a test"); 

byte[] notificationMessage = new UTF8Encoding().GetBytes(toastXML); 
+0

你从哪里找到这个模板?您使用单引号而不是双引号,并且标记不是大写,这与[MSDN](http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/jj662938%28v=vs。 105%29.aspx)文档说。 – Eran 2013-03-22 21:48:56

+0

我使用MSDN文档中指定的XML来发送它。也许这两个版本(小写和大写)都有效。 404不是由错误的XML直接引起的。如果发送错误的XML,则会得到一个建议成功的响应(200/Connected/Active/Received)。之后,当您向另一个通道发送另一个通知(使用有效或无效的XML)时,您可能会收到404。404是由于该通道不再有效。频道不再有效的原因是之前发送的无效XML。 – Eran 2013-03-27 19:46:28