c# - Azure 表客户端中的插入操作何时返回除 204 之外的其他内容?
问题描述
这(大致)是我在 Azure 表中插入实体的方式:
public async Task<bool> InsertAsync(string tableName, T entity)
{
var table = _cloudTableClient.GetTableReference(tableName);
await table.CreateIfNotExistsAsync();
var operation = TableOperation.Insert(entity);
var tableResult = await table.ExecuteAsync(operation);
return tableResult.HttpStatusCode == (int)HttpStatusCode.NoContent;
}
看起来这或多或少是要走的路。我正在为此编写测试,所以我很好奇,我应该怎么做才能不进入 204 tableResult.HttpStatusCode
?
插入坏实体会引发异常,插入相同的实体会引发异常——我不是在谈论这个。我想知道状态码还能分配给什么。
解决方案
对于成功的Insert Entity
操作,您可以期望获得状态码204 (No Content)
或201 (Created)
状态码。状态码取决于Prefer
标头的值。
如果 Prefer 标头设置为 return-no-content,则成功的操作将返回状态代码 204(无内容)。如果未指定 Prefer 标头或将其设置为 return-content,则成功的操作将返回状态代码 201(已创建)。
参考:https ://docs.microsoft.com/en-us/rest/api/storageservices/insert-entity#response
如果由于某种原因操作失败,SDK 会在操作失败时抛出异常(StorageException 类型)。
推荐阅读
- javascript - 在javascript中替换时不要将方括号视为字符类
- powershell - 替换图片文件中的IPTC关键字
- powershell - 循环遍历二维数组(foreach)时的令人困惑的行为
- vb.net - 我在我的文档上传器代码中做错了什么?
- python - 如何在 pylatex 中添加页面背景图片?
- symfony - 如何在推进 2 上创建行为
- python - 树莓派上的 CNN 模型
- svn - 标签和分支的 SVN 问题
- javascript - Jqgrid 检索所有数据但有奇怪的行为
- android - RuntimeException:setDataSource 失败:状态 = 0x80000000 使用 MediaMetaDataRetreiver