我有一个第三方事件,该事件将数据发布到我的托管API,但是问题是我不知道Json结构是哪个事件从Body发布到我的API。我需要读取Event发布到我的API的json内容。
我试图将post方法创建为动态或字符串类型,该事件能够调用服务,但数据未获得类型转换,它始终显示为null。
[HttpPost]
RecievedPayload([FromBody]dynamic json)
{
}
[HttpPost]
RecievedPayload([FromBody]string json)
{
}
RecievedPayload Api方法被第三方事件调用,但json内容为null。我需要知道Json结构,以便可以创建一个自定义类来保存内容。
最佳答案
没有简单的方法可以将整个身体作为参数。
这篇博客文章值得一读:https://weblog.west-wind.com/posts/2013/dec/13/accepting-raw-request-body-content-with-aspnet-web-api
但是,为了实现您的目标,这是博客文章中提供的代码示例的略微修改版本,应该可以满足您的需求:
[HttpPost]
public async Task<string> RecievedPayload()
{
string result = await Request.Content.ReadAsStringAsync();
return result;
}
还值得一读:https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api