我已经设置了一个asp.net MVC Web应用程序来捕获发布请求。我已设置断点以查看正在传递的信息。单击交互式按钮时,会触发我的断点,但该对象没有详细信息。当我将鼠标悬停在value
上时,它会简单地说{Object}。当我使用Postman并发送原始JSON主体时,它会显示JSON。请问我如何处理发送的松弛对象?
public void Post(object value)
{
// breakpoint here
}
答案 0 :(得分:3)
对于交互式消息,Slack发送标准POST请求,其中包含一个名为payload
的表单数据编码参数。此参数包含实际请求的数据作为JSON字符串。
您可以使用以下参数使用Postman进行模拟:
Content-Type: application/x-www-form-urlencoded
form-data
,key
= payload
且value
= JSON字符串。因此,正如您所假设的那样,正文不是完全JSON,而是包含带有JSON编码字符串的表单参数。如果您相应地更改了应用程序,它将会起作用。
在c#中,您可以使用payload
访问Request["payload"]
参数的内容(请参阅this answer或详细信息)。
然后,您仍然需要将JSON字符串解码为对象。一种简单的方法是使用JavaScriptSerializer.Deserialize
。 (有关详细信息和替代方法,请参阅this answer。)