2011-05-26 67 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