【问题标题】:How to parse sqare brackets in a web api post body?如何解析 Web api 帖子正文中的方括号?
【发布时间】:2019-02-10 23:30:40
【问题描述】:

我正在配置一个 asp.net web api 来响应 webhook。 webhook 以 x-www-form-urlencoded 格式发送其数据。一些键名包含方括号 [ ],这导致了我的问题。

当我的 api 收到来自 webhook 的 post 时,以下键值对会显示为 null:

“数据[回收]”:“123”

因为方括号会阻止正确解析。 asp.net core 中是否包含任何属性或工具可以让我解析方括号?

【问题讨论】:

  • 1. "data[reclaimed]":"123" 不是有效的 x-www-form-urlencoded 格式。您是说 webhook 发布 data[reclaimed]=123&data[otherKye]=456 吗? 2.你最好把你的动作方法和模型给我们看看。
  • 好吧,我正在尝试解析 MailChrimp 的 webhook 有效负载,它具有以下结构:“type”:“unsubscribe”,“fired_at”:“2009-03-26 21:40:57”, "data[action]": "unsub", "data[reason]": "manual" 等关于他们的 webhook 有效负载的信息在这里:developer.mailchimp.com/documentation/mailchimp/guides/…

标签: asp.net-web-api asp.net-web-api2 asp.net-core-webapi


【解决方案1】:

我找到了适合我要求的解决方案:

public void Post([FromBody] FormDataCollection data)

在我的 Post 方法的主体中,我使用 data.Get("key_val") 来提取传入负载的所有元素。例如:

string listId = data.Get("data[list_id]");

允许我访问 list_id 元素等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    相关资源
    最近更新 更多