C# 如何创建一个具有http post函数的web Api,该函数可以从主体中获取任何动态json内容,并能够将其解析为字符串

C# 如何创建一个具有http post函数的web Api,该函数可以从主体中获取任何动态json内容,并能够将其解析为字符串,c#,asp.net-core-webapi,C#,Asp.net Core Webapi,我有一个第三方事件将数据发布到我的托管API,但问题是我不知道从主体发布到我的API的事件的Json结构。我需要阅读由事件发布到API的json内容。 我尝试将post方法创建为动态或字符串类型,事件可以调用服务,但数据不是get typecast,它始终显示null [HttpPost] RecievedPayload([FromBody]dynamic json) { } [HttpPost] RecievedPayload([FromBody]string json) { }

我有一个第三方事件将数据发布到我的托管API,但问题是我不知道从主体发布到我的API的事件的Json结构。我需要阅读由事件发布到API的json内容。 我尝试将post方法创建为动态或字符串类型,事件可以调用服务,但数据不是get typecast,它始终显示null

[HttpPost]
RecievedPayload([FromBody]dynamic json) 
{  
}

[HttpPost]
RecievedPayload([FromBody]string json) 
{ 
}

ReceivedPayLoad Api方法正在被第三方事件调用,但json内容为null。我需要知道Json结构,以便创建一个自定义类来保存内容。

没有一种简单的方法可以将整个主体作为参数

这篇博文值得一读:

然而,为了实现您的目标,这是博客文章中提供的代码示例的一个稍加修改的版本,应该可以满足您的需要:

[HttpPost]
public async Task<string> RecievedPayload()
{
    string result = await Request.Content.ReadAsStringAsync();            
    return result;
}
[HttpPost]
公共异步任务ReceivedPayLoad()
{
字符串结果=wait Request.Content.ReadAsStringAsync();
返回结果;
}

同样值得一读:

参数的名称并不重要,是参数类型的属性限制了模型。你是对的,我误解了我在第二个链接上读到的内容。根据编辑答案如果Adam的答案不适用于您,请查看有关拦截原始请求的一些提示。