json - 什么是“application/x-amz-json”,它与“application/json”有何不同?
问题描述
我在向 AWS 资源发出请求时遇到了“application/x-amz-json-1.1”。最近,我正在与之通信的 API 网关不喜欢处理它(无论出于何种原因)成为一个问题。这让我想知道在我的请求中使用 application/x-amz-json-1.1 而不是 application/json 有什么好处。令我失望的是,AWS 似乎没有关于这种奇怪内容类型的任何文档。
所以我转向 SO:什么是“application/x-amz-json”,它与“application/json”有什么不同?
解决方案
Amazon 没有具体记录application/x-amz-json
Content-Type 的用途,但有关于Smithy ( AWS 发布的一种用于定义服务和 SDK的开源语言)的协议文档:
考虑到问题与用作Content-Type
1标头发出请求时的差异有关,我认为我们可以看出差异是:
application/json
是请求/接收 JSON 数据,没有任何更具体的内容application/x-amz-json-1.1
(或其他版本)也是请求/接收 JSON 数据并期望在上面的文档中描述的其他行为。(即告诉服务器/客户端这是 JSON 加上其他元素)
我认为application/x-amz-json
可以被认为是一种扩展或更具体的application/json
请求方式。
我正在与之通信的 API 网关不喜欢处理它成为一个问题(无论出于何种原因)
在向 AWS Amazon API Gateway 发出 PATCH、PUT 和 POST 请求的特定情况下,似乎需要指定Content-Type
标头或其他版本。application/x-amz-json-1.1
根据相关文档:
内容类型(条件)
指定 JSON 和版本,例如 Content-Type: application/x-amz-json-1.0。
条件:需要 PATCH、PUT 和 POST 请求。
也许服务器理解application/json
为基本的 JSON,但需要application/x-amz-json-1.1
执行特定的请求。
1个 Content-Tye
标头用于告诉服务器/客户端如何处理我们的请求
推荐阅读
- powershell - 无法使用空组捕获工作站详细信息
- flutter - 检测设备是否会在 Flutter 中显示软键盘
- reactjs - 反应打字稿和孩子
- git - 为了防止性能问题,省略了 82 个额外的提交。GitLab
- firebase - Firebase OnDisconnect 事件
- r - R:我的数据框有 1 列和多行,有没有办法计算某些行子集的平均值?
- python - 在机器学习 python 中使用模型进行预测
- sql - 通过连接视图和表实现物化视图
- cpu - 我的 CPU 真的与 Genymotion 不兼容吗?
- c - sk_buff / net_device:最小数据包大小?