处理来自Slack的发布请求

处理来自Slack的发布请求

问题描述:

我已经设置了一个asp.net MVC web应用程序来捕获发布请求。我已经设置了断点来查看哪些信息正在通过。当一个交互式按钮被点击时,我的断点被击中,但对象没有任何细节。它简单地说{Object}当我停留在value上。当我使用Postman并发送一个原始JSON正文时,它显示JSON。请问我如何处理发送的松弛对象?处理来自Slack的发布请求

public void Post(object value) 
{ 
    // breakpoint here 
} 
+0

请提供读取POST请求并解码JSON的实际代码,这只是一个空的函数.... –

+0

@ErikKalkoken也许我措辞不佳,但我正在寻找如何解析对象。它不会在我的结尾显示为JSON。有没有我可以把这个对象给予的类? – Master

+0

请看我的扩展答案。 –

对于交互式消息松弛发送与身体中称为​​单格式数据编码的参数标准POST请求。该参数包含实际请求的数据作为JSON字符串。

可以通过使用下列参数与邮差模拟此:

  • 搜索类型:POST
  • 部首:Content-Type: application/x-www-form-urlencoded
  • 身体:form-data,与key =​​和value = JSON字符串。

因此,正如您所设想的那样,body不是完全的JSON,而是包含带有JSON编码字符串的表单参数。如果你相应地改变你的应用程序,它会起作用。

在c#中,您可以使用Request["payload"](请参阅this answer或详细信息)访问​​参数的内容。

然后你仍然需要将JSON字符串解码成一个对象当然。一个简单的方法是使用JavaScriptSerializer.Deserialize。 (详情请参阅this answer)。

+0

嗨,Erik,你创建了什么类型的应用程序来接受这些发布请求? asp.net mvc呢?我试过了,并且我看到了这个https://imgur.com/a/ri6Wg – Master

+0

如果这种方法不起作用,请查看关于如何使用c#取回POST请求的替代方法的链接答案。 –

+0

嘿,任何意见你有没有在.net核心中完成这项工作?使用框架4.6,它可以很好地处理Request [“payload”],但不是.net core的解决方案。 – Master