Max*_*Max 2 json http httprequest
假设我正在发出下面的 http 请求,以更新 mongoDB 数据库中的某些记录:
PUT
http://dev.mycompany.co/ping
{"id":4432, "name":"Jane Doe", "products":[ {"id":287}, {"id":434} ] }
请注意,上面 JSON 的“products”属性中有一个由两个对象组成的数组。我有通过 Fiddler 和我编写的 ruby 脚本以这种通用格式发送的数据。
通过 Fiddler 发送时,JSON 中的数据会被正确解析并更新到我的数据库中。当通过我的 ruby 脚本发送时,JSON 中的数据未正确解析。我一直在试图找出这是为什么。现在,我想知道当 JSON 与 http 请求一起发送时,数据实际上是如何发送的。有人能指出我正确的方向吗?
在问了一些关于 SO 的其他问题并做了更多研究之后,我得出了以下结论。
问:JSON 数据如何在 http 请求中发送?
答:这取决于您如何发送请求中的 JSON 数据(内容类型是什么)
我遇到过两种发送 JSON 数据的方式。
使用内容类型application/json发送
使用此内容类型,JSON 数据按原样发送。文字 JSON 数据存储为字符串并随请求一起发送。如果您的 JSON 很复杂,包含嵌套对象和数组等,这可能就是您想要的。有关使用 Ruby 的 Net/HTTP 发送嵌套 JSON 的工作示例,请参阅我提出的这个 SO 问题的答案。
使用内容类型x-www-form-urlencoded发送
这就是 Ruby 的 Net/HTTP 请求通常发出的方式。这些请求的形式类似于:id=343?entity=Microsoft?foo=bar。在您拥有复杂的 JSON 之前,此内容类型就很好。
| 归档时间: |
|
| 查看次数: |
5755 次 |
| 最近记录: |