Отправить сырое уведомление UWP из бэкэнда в C # - PullRequest
0 голосов
/ 24 августа 2018

Я пойман в ловушку с довольно простой проблемой.Немного предыстории: я разрабатываю приложение с Xamarin, бэкэндом в C #, и использую Azure в качестве центра push-уведомлений.

Моя цель - отправить необработанное уведомление от бэкэнда в мое приложение UWP через Azuretification-hub,Уведомления по бейджам, плиткам или тостам не являются опциями в моем проекте, поэтому я застрял с необработанными уведомлениями.

Приложение работает на компьютере Win10 и успешно регистрируется в центре уведомлений.Тестовая отправка уведомлений (любого типа) из Azure работает!

Сервер также работает на компьютере с Win10 в той же сети.Приложение и сервер взаимодействуют через REST (также работает).

Теперь проблема: я пытаюсь отправить необработанное уведомление от сервера в Центр уведомлений со следующим кодом:

 var message = "Test";
 Notification notification = new WindowsNotification( message );
 notification.Headers.Add( "X-WNS-Type", @"wns/raw" );
 try
    {
      return await _notificationHub.SendNotificationAsync( notification, tag ); ;
    }
    catch( Exception e )
    {
      System.Diagnostics.Debug.WriteLine( $"===> Notification {message} \nTO {tag} could not be sent !!" );
      System.Diagnostics.Debug.WriteLine( $"{e.Message}" );
    }

Это, как я понял, должно быть основным кодом для отправки необработанного уведомления.Но я получаю исключение, заявляющее:

Тип содержимого для уведомления «wns / raw» должен быть «application / octet-stream». TrackingId: xxx, TimeStamp: 24.08.2008 1:7:20 вечера

Итак, я добавил строку

notification.Headers.Add( "Content-Type", @"application/octet-stream" );

над оператором try.Теперь я получаю исключение

Неправильное имя заголовка.Убедитесь, что заголовки запроса используются с HttpRequestMessage, заголовки ответа с HttpResponseMessage и заголовки содержимого с объектами HttpContent.

... и я не знаю, как правильно установить заголовок.

Есть кто-нибудь полезное предложение для меня, пожалуйста ....

THX заранее

PS Использование VS2017 с "Microsoft.AspNetCore.All 2.0.7" и "Microsoft.Azure.NotificationHubs 2.0.0-preview2 "(просто упомянуть важные библиотеки).

1 Ответ

0 голосов
/ 27 августа 2018

Тип содержимого для уведомления «wns / raw» должен быть «application / octet-stream»

Это сообщение означает, что вам необходимо отделить тип содержимого от «wns»./ raw 'уведомление.Я проверяю документ WindowsNotification , у него есть свойство Notification.ContentType, попробуйте указать значение этого свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...