假设我们需要将一些结构化对象传递给 Web 应用程序 - 例如,区域设置、布局设置和一些查询的定义。这可以使用类似于以下片段的 JSON 或 XML 轻松完成:
<Locale>en</Locale>
<Layout>
<Block id="header">hide</Block>
<Block id="footer">hide</Block>
<Block id="navigation">minimize</Block>
</Layout>
<Query>
<What>water</What>
<When>
<Start>2010-01-01</Start>
</When>
</Query>
但是,使用 HTTP 传递此类结构意味着(粗略地说)HTTP POST。
现在假设我们仅限于 HTTP GET。在 HTTP GET 请求参数中编码结构化数据是否有某种标准解决方案?
我可以很容易地想象出这样的事情:
Locale=en&
Layout.Block.header=hide&
Layout.Block.footer=hide&
Layout.Block.navigation=minimize&
Query.What=water&
Query.When.Start=2010-01-01
但我正在寻找的是“标准”语法,如果有的话。
附言。我肯定知道 URL 长度的问题。请假设在这种情况下这不是问题。
页数。我也很乐意提供您认为值得一看的键值对 URL API(例如 Paypal NVP)的链接。
pps。我们当然预见到回调 URL,但我们也需要 HTTP GET 键值对。问题集中在后者。
最佳答案
嗯,在 URI 中编码数据的标准方法是 application/x-www-form-urlencoded
。 大多数 应用程序处理分层数据的方式是在关键部分使用方括号。例如:
Locale=en&
Layout[Block][header]=hide&
Layout[Block][footer]=hide&
Layout[Block][navigation]=minimize&
Query[What]=water&
Query[When][Start]=2010-01-01
这在某种程度上是特定于应用程序的,但它非常接近成为事实上的标准
关于xml - 是否有将结构对象编码为 HTTP GET 请求参数的标准语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2694223/