Azure Table 服务 REST API - 创建 Table

Azure Table Service REST API - Create Table

我正在尝试使用此操作创建 table:

https://msdn.microsoft.com/en-us/library/azure/dd135729.aspx

带有 json 请求正文。但是,我的所有努力都被以下回复拒绝了:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> <error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> <code>JsonFormatNotSupported</code> <message xml:lang="en-US">JSON format is not supported. RequestId:41192a52-0002-007b-5334-b57662000000 Time:2016-05-23T20:48:17.4360778Z</message> </error>

此处提到错误:

https://msdn.microsoft.com/en-us/library/azure/dd179438.aspx

但我只能找到这些

这是我要发送的内容:

http://requestb.in/1l9sye21?inspect#1jmf39

我认为问题在于您需要添加 x-ms-version header:

x-ms-version: 2015-04-05

为 Table 服务使用共享密钥/共享密钥精简版身份验证时,这是必需的。有关详细信息,请参阅 https://msdn.microsoft.com/en-us/library/azure/dd894041.aspx

添加到 Adam 的回答:您需要在验证时在请求中指定存储服务版本。

  • 对于使用共享密钥或共享密钥精简版的请求,您必须通过 x-ms-version header请求。
  • 对于使用共享访问签名 (SAS) 的请求SignedVersion (sv) 参数指定用于授权的服务版本并进行身份验证。

有关详细信息,请参阅 https://msdn.microsoft.com/en-us/library/azure/dd894041.aspx

用于身份验证的存储服务版本可能与用于处理请求的版本不兼容,这将导致某些功能(例如json不可用,因此REST请求失败并出现错误(415) JSON format is not supported..

请参阅 https://github.com/Azure/azure-storage-net/issues/32 了解一些信息,尽管它是使用 SAS 而不是 SKA。