正在处理来自 Slack 的 Post 请求
Processing Post Request from Slack
我已经设置了一个 asp.net MVC 网络应用程序来捕获 post 请求。我设置了断点以查看正在通过的信息。单击交互式按钮时,命中断点但对象没有详细信息。当我将鼠标悬停在 value
上时,它只是说 {Object}。当我使用 Postman 发送原始 JSON 正文时,它显示 JSON。请问我应该如何处理发送的松弛对象?
public void Post(object value)
{
// breakpoint here
}
对于交互式消息,Slack 发送一个标准 POST 请求,在 body 中使用一个名为 payload
的 form-data 编码参数。此参数包含实际请求的数据,为 JSON 字符串。
您可以使用以下参数使用 Postman 进行模拟:
- 请求类型:POST
- Header:
Content-Type: application/x-www-form-urlencoded
- Body:
form-data
,key
=payload
和 value
= JSON 字符串。
因此 body 并不像您假设的那样完全 JSON,而是包含一个带有 JSON 编码字符串的表单参数。如果您相应地更改您的应用程序,它就会工作。
在 c# 中,您可以使用 Request["payload"]
访问 payload
参数的内容(参见 this answer 或详细信息)。
那你当然还需要把JSON字符串解码成object。一种简单的方法是使用 JavaScriptSerializer.Deserialize
. (see this answer 了解详细信息和替代方法)。
我已经设置了一个 asp.net MVC 网络应用程序来捕获 post 请求。我设置了断点以查看正在通过的信息。单击交互式按钮时,命中断点但对象没有详细信息。当我将鼠标悬停在 value
上时,它只是说 {Object}。当我使用 Postman 发送原始 JSON 正文时,它显示 JSON。请问我应该如何处理发送的松弛对象?
public void Post(object value)
{
// breakpoint here
}
对于交互式消息,Slack 发送一个标准 POST 请求,在 body 中使用一个名为 payload
的 form-data 编码参数。此参数包含实际请求的数据,为 JSON 字符串。
您可以使用以下参数使用 Postman 进行模拟:
- 请求类型:POST
- Header:
Content-Type: application/x-www-form-urlencoded
- Body:
form-data
,key
=payload
和value
= JSON 字符串。
因此 body 并不像您假设的那样完全 JSON,而是包含一个带有 JSON 编码字符串的表单参数。如果您相应地更改您的应用程序,它就会工作。
在 c# 中,您可以使用 Request["payload"]
访问 payload
参数的内容(参见 this answer 或详细信息)。
那你当然还需要把JSON字符串解码成object。一种简单的方法是使用 JavaScriptSerializer.Deserialize
. (see this answer 了解详细信息和替代方法)。