我的任务是编写 Http
POST
方法来处理传入的 webhook 数据,我已经能够实现这一目标,但要真正开始接收,我必须首先通过验证 url 来订阅 Webhook 事件,为此我还必须捕获查询字符串参数在 POST
请求中传递,这是我遇到问题的地方。
下面的方法签名能够捕获标头和正文,然后实现处理数据。
[HttpPost]
public IActionResult Callback([FromHeader(Name = "headerSignature")] string signature, [FromBody] WebHookEventData eventData)
但是我还需要启用它来捕获来自查询字符串的数据。例如,下面是带有查询字符串的 url,当我将其作为来自 Postman 的
POST
请求传递时,它会抛出错误 415 不支持的媒体类型:
https://webhoook.example.com/webhook/callback?centre.challenge=test
如何捕获
POST
请求中的查询参数?
很简单,您可以像这样使用 HttpContext:
var queryString = HttpContext.Request.QueryString ;
如果您想寻址特殊的查询字符串,请这样做:
var queryStringId = HttpContext.Request.Query["id"] ;
希望有帮助;)