首页 > 解决方案 > 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

插入坏实体会引发异常,插入相同的实体会引发异常——我不是在谈论这个。我想知道状态码还能分配给什么。

标签: c#azureinsertazure-table-storage

解决方案


对于成功的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 类型)。


推荐阅读