Rest 访问Azure表实体

Rest 访问Azure表实体,rest,azure,azure-storage,azure-table-storage,Rest,Azure,Azure Storage,Azure Table Storage,所以我有一个应用程序,它需要从Azure表存储中查询实体,从我不知道其架构的表中查询实体 1) 有没有办法用Storageclient包装器做到这一点? 2) 我猜不会,所以我尝试了RESTAPI,当我查询实体时,我总是得到403禁止 这是我的密码 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(string.Format("http://{0}.table.core.windows.net/Tables('{1}')", a

所以我有一个应用程序,它需要从Azure表存储中查询实体,从我不知道其架构的表中查询实体

1) 有没有办法用Storageclient包装器做到这一点?
2) 我猜不会,所以我尝试了RESTAPI,当我查询实体时,我总是得到403禁止

这是我的密码

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(string.Format("http://{0}.table.core.windows.net/Tables('{1}')", account,query));
request.UserAgent = " Microsoft ADO.NET Data Services";
request.KeepAlive = true;
request.Method = "GET";
request.Headers.Add("x-ms-version", "2009-09-19");
request.Headers.Add("x-ms-date", string.Format("{0} GMT", DateTime.UtcNow.ToString ("ddd, dd MMM yyyy HH:mm:ss")));
request.Headers.Add("Authorization", string.Format("SharedKey {0}:{1}", account, key));
request.Accept = "application/atom+xml,application/xml";
request.Headers.Add("Accept-Charset", "UTF-8");
request.Headers.Add("DataServiceVersion", "1.0;NetFx");
request.Headers.Add("MaxDataServiceVersion", "1.0;NetFx");

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

是的,你能做到。有一个很好的条目介绍了如何:


它给出了一个很好的代码示例,因此我将不详细说明。这段代码几乎就是我在项目中用来查找实体属性的代码。如果您查看代码,请查看和类

我最初的问题是因为我的自动化标题不正确。
我刚刚添加了密钥,实际上您需要对密钥执行一些操作,在字符串上签名并将其添加到自动化标题中。
更多信息


那么为什么我要把@Jason的答案标记为有效?因为我的假设是错误的。有一种方法可以查询Azure表中的实体,即使您不知道表的架构。Jason的帖子为我指明了方向。

可以通过OData(OData.org)协议查询Windows Azure表。最简单的方法是使用要获取/更新/合并/删除的实体的PartitionKey和RowKey

所有REST示例都存在(对于表查询和实体查询):

编辑我的标签的人:伙计!为什么只是天蓝色?WindowsAzure相当大。。。而且只与存储帐户中的表相关……不幸的是,Microsoft目前没有为表存储提供REST级别的API(我已经抱怨过了,请参见),ADO.NET客户端也没有通用类型。在这一点上,我建议放弃,等到微软提供了一个像样的客户端库。