我试图使用mailgun webhook数据,但它们的事件数据作为"事件数据"发送

https://documentation.mailgun.com/en/latest/user_manual.html#webhooks-1

所以我看到其他帖子中有JsConfig的东西来全局改变SS的行为(宽容属性?)但我不能从根本上做到这一点.如果我要使用Lenient,它只需要为这项服务,理想的情况下,这一特定的请求后eh.我们正在使用的系统在核心级别实现ServiceStack,因此我们try 的任何JsConfigtry 似乎都会随机 destruct CMS中的内容.但我确实使用并更喜欢SS作为定制服务路由.

我如何让SS在本地处理这个事件数据(事件数据)?

    [Route("/mailgun/webhook")]
    public class MailgunWebhookListenerRequest : IReturn<string>
    {
        public MailgunWebhookSignature Signature { get; set; }
        public List<Dictionary<string, string>> EventData { get; set; } = new List<Dictionary<string, string>>();
    }
{
    "signature":
    {
        "timestamp": "1529006854",
        "token": "a8ce0edb2dd8301dee6c2405235584e45aa91d1e9f979f3de0",
        "signature": "d2271d12299f6592d9d44cd9d250f0704e4674c30d79d07c47a66f95ce71cf55"
    },
    "event-data":
    {
        "event": "opened",
        "timestamp": 1529006854.329574,
        "id": "DACSsAdVSeGpLid7TN03WA"
    }
}

推荐答案

您可以使用.NET的DataContract属性来自定义序列化,例如:

[DataContract]
public class MailgunWebhookListenerRequest : IReturn<string>
{
    [DataMember]
    public MailgunWebhookSignature Signature { get; set; }

    [DataMember(Name="event-data")]
    public List<Dictionary<string, string>> EventData { get; set; }
}

Asp.net相关问答推荐

是否可以发布 ASP.NET 5 应用程序以使目标机器不需要安装 DNX?

此版本的 SQL Server 不支持用户实例登录标志.连接将关闭

如何在 IISExpress 上使用带有 localhost 的子域?

在 C# 中以编程方式添加元标记

如何判断 IIS 是处于 32 位还是 64 位模式

如何更改 .ASPX 自动格式化设置 (Visual Studio)

您对 Windows Workflow Foundation 有何体验?

HttpContext.Current.Cache.Insert 和 HttpContext.Current.Cache.Add 有什么区别

Httpclient 该实例已经启动了一个或多个请求.只能在发送第一个请求之前修改属性

可空日期时间转换

如何从 HTTP 请求中获取 MAC 地址?

错误:无法在 Web 服务器上开始调试... ASP.NET 4.0

为 ASP.NET Core MVC 显示 404 Not Found 页面

如何在 asp.net 中更改 DataBinder.Eval 的日期格式?

Asp.Net Mvc - 如何在共享视图中有一个控制器

ASP.NET MVC 和 httpRuntime executionTimeout

在c#中显示带有换行符的标签文本

字体真棒里面asp按钮

DateTime.Parse 和 Convert.ToDateTime 之间有什么区别?

Unity 中的单例每个调用上下文(Web 请求)