当前位置: 首页 > 知识库问答 >
问题:

如何使用REST API在Azure中删除表实体时使用空格编码参数

程项禹
2023-03-14

我有一些代码可以使用REST API在Windows Azure中添加和删除表中的实体。如果我添加一个PartitionKey为'abcd'和RowKey为'efgh'的实体,然后删除它,它工作得很好。删除操作的相对URL为

devstoreaccount1/TableX(PartitionKey='abcd',RowKey='efgh')

这用于创建身份验证头,因此签名字符串的规范化资源是

/devstoreaccount1/devstoreaccount1/TableX(PartitionKey='abcd',RowKey='efgh')

一切都很好,一切都很好。接下来,我插入另一个具有分区键'a b c d'和行键'e f g h'(即添加空格)的实体。实体插入很好。当我尝试删除它时,我创建了带有空格的uri,并且我的请求得到了错误代码403的响应。基本上请求没有进行身份验证。解决这个问题的下一步是通过调用HttpUtility.PathEncodeURL(partitionKey)和RowKey来更改值。因此规范化的资源现在是

/devstoreaccount1/devstoreaccount1/TableX(PartitionKey='a%20b%20c%20d',RowKey='e%20f%20g%20h')

当我发出这样的请求时,我得到一个错误代码为404的响应(找不到)。这显然意味着身份验证已经通过,但在内部,似乎调用处理程序在搜索实体键时忘记了将%20转换回空格。

好的,在这个长长的描述之后,我的两个问题是:1)用什么方法来编码空格,这样它就可以通过身份验证,然后找到要删除的实体?2)如果其中一个参数包含一个单引号,那么用什么方法在字符串中编码它。

我更喜欢使用REST API,所以请不要告诉我使用TableServiceContext类。

事先谢谢你的帮助。最后一个注意事项:MSDN中有关此主题的文档(http://MSDN.microsoft.com/en-us/library/windowsazure/dd135727.aspx)不正确。它表明参数应该用双引号而不是单引号发送。如果您这样做,响应是403(禁止访问)。我花了一段时间才弄明白。

共有1个答案

澹台承
2023-03-14

谢谢你的建议,斯马克斯。“问题越简单,越难解决”,照例如此。我需要打个电话

fullPathUri = HttpUtility.UrlPathEncode(fullPathUri);

创建HttpWebRequest时使用的参数,然后一切正常工作。至于单引号,则需要用2个单引号来代替(例如从who's there到who's there)

 类似资料:
  • 问题内容: Python的string.whitespace很棒: 如何在不使用手动输入regex的’\ t | \ n | …等的情况下将其与字符串一起使用? 例如,它应该能够显示:“请\ n不要\ t伤害我。 进入 “请不要伤害我。” 我可能想保留单个空格,但是我想只要去string.whitespace [:-1]就足够了。 问题答案: 正是这种用例有一个特殊情况的快捷方式! 如果不带参数调

  • 问题内容: 我们已经构建了一个Go包,供我们许多人使用。 它是使用标准方法导入的。 但是,在编译时,我们所有的实用程序(包括很小的实用程序)最终都是很大的二进制文件。 我们提取了实用程序中的所有字符串,并发现整个软件包都被编译到每个实用程序中。包括那些实用程序未使用的功能。 编辑1: 谢谢回答这个问题的人。 这是我们所看到的: main.go play / subplay.go 永远不会调用函数B

  • 我正在创建一个Azure函数,当图像上传到或添加到特定Azure存储时触发该函数,它执行以下操作: 1.)调整图像大小2.)将图像放入正确的目录(使用输出绑定)3.)删除处理后添加到Azure存储的原始blob图像。 我已经完成了过程中的步骤1和2,但我发现很少甚至没有关于删除blob或API的文档,这些文档将公开Azure存储的方法。(使用C#) 以下是示例代码:

  • 问题内容: 如何删除字符串中的空格?例如: 输入: 输出: 问题答案: 这个? 例 更新: 基于此问题此: 是更好的解决方案。它产生相同的结果,但执行速度更快。 正则表达式 是“空白”的正则表达式,并且是“全局”标志,表示匹配ALL (空白)。 在这里可以找到一个很好的解释。 附带说明,您可以将单引号之间的内容替换为所需的任何内容,因此可以将空白替换为任何其他字符串。

  • 问题内容: 我有一堆正在用BeautifulSoup解析的HTML,除了一个小小的障碍外,一切进展顺利。我想将输出保存到单行字符串中,并将以下内容作为当前输出: 理想情况下,我想要 我想摆脱很多多余的空格,但是不一定要使用来删除它,也不能因为需要保留文本而公然删除所有空格。我该怎么做?看起来正则表达式过于矫over似乎是一个足够普遍的问题,但这是唯一的方法吗? 我没有任何标签,因此可以在其中变得更

  • 我有个问题。当我有其他实体时,我不知道如何创建API。我与邮递员工作,当我做一个请求,以看到所有项目从数据库,我想收到实体也。 例如,这是我的实体: