c# - 在 C# 中从后端发送 UWP 原始通知
问题描述
我被一个看起来很简单的问题困住了。一点背景知识:我正在开发一个带有 Xamarin 的应用程序,它是 C# 中的一个后端,并使用 Azure 作为推送通知中心。
我的目标是通过 Azure 通知中心将原始通知从后端发送到我的 UWP 应用程序。徽章、平铺或 toast 通知在我的项目中不是选项,所以我被原始通知卡住了。
该应用程序在 Win10 机器上运行并成功注册到通知中心。测试从 Azure 发送通知(任何一种)都有效!
后端也在同一网络中的 Win10 机器上运行。应用程序和后端通过 REST 进行通信(也可以工作)。
现在的问题:我尝试使用以下代码从后端向 Notification-Hub 发送原始通知:
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:8/24/2018 1:07:20 PM
所以我添加了这条线
notification.Headers.Add( "Content-Type", @"application/octet-stream" );
上面的“尝试” - 声明。现在我得到了例外
误用的标头名称。确保请求标头与 HttpRequestMessage 一起使用,响应标头与 HttpResponseMessage 一起使用,内容标头与 HttpContent 对象一起使用。
...而且我不知道如何正确设置标题。
有没有人对我有帮助的建议......
提前 THX
PS 将 VS2017 与“Microsoft.AspNetCore.All 2.0.7”和“Microsoft.Azure.NotificationHubs 2.0.0-preview2”一起使用(仅提及重要的库)。
解决方案
“wns/raw”通知的内容类型必须是“application/octet-stream”
此消息意味着您需要指定“wns/raw”通知的内容类型。我查看了WindowsNotification文档,它有一个Notification.ContentType
属性,请尝试指定该属性的值。
推荐阅读
- html - 我可以更改不同背景中文本部分的颜色吗?
- c# - 需要帮助将 XML 文件反序列化为对象 C#
- php - Laravel 7缺少必需的参数
- java - 通过注释进行的依赖注入不起作用
- javascript - jsPDF v2.1.1 - doc.html 不是函数 - 10.2020
- python - request.referrer 不断返回 None
- java - 将 String.format 调用转换为 String#formatted 的简单方法?
- algorithm - 根据 Big-O 复杂度对函数进行排序
- python - 如何将其他参数传递给 FileSystemEventHandler 类以允许用户输入?
- pointers - 为什么遍历列表是线性时间?