处理来自Slack的发布请求
问题描述:
我已经设置了一个asp.net MVC web应用程序来捕获发布请求。我已经设置了断点来查看哪些信息正在通过。当一个交互式按钮被点击时,我的断点被击中,但对象没有任何细节。它简单地说{Object}当我停留在value
上。当我使用Postman并发送一个原始JSON正文时,它显示JSON。请问我如何处理发送的松弛对象?处理来自Slack的发布请求
public void Post(object value)
{
// breakpoint here
}
答
对于交互式消息松弛发送与身体中称为单格式数据编码的参数标准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)。
请提供读取POST请求并解码JSON的实际代码,这只是一个空的函数.... –
@ErikKalkoken也许我措辞不佳,但我正在寻找如何解析对象。它不会在我的结尾显示为JSON。有没有我可以把这个对象给予的类? – Master
请看我的扩展答案。 –