你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:ACS Email (Email 发送 API) 、ACS 会议室
根据定义,POST API 不是幂等的。 为了使它们以幂等方式运行,我们根据 OASIS 可重复请求版本 1.0 规范支持可重复请求 。 为了支持这一点,客户需要在 POST 请求中指定两个必需的标头:
- Repeatability-Request-Id
- Repeatability-First-Sent
Repeatability-Request-Id 标头
此标头的值使用 GUID 唯一标识请求。
Repeatability-First-Sent 标头
此标头的值表示首次发送原始请求时的时间戳。 该值应以 UTC 格式以 IMF 固定日期格式指定。 目前,我们只跟踪指定持续时间的请求 (,跟踪的持续时间为 5 分钟) 。 任何具有第一个发送值之前被视为可能不安全的请求重新执行,并将返回 412 (先决条件失败) 错误。
ACS SDK 中的可重复性
使用任何 ACS SDK 库时,自动生成、添加和发送到 API 的可重复性标头。
可重复的请求响应代码
下表包含有关可重复请求的各种状态代码的详细信息。
| Repeatability-Request-ID | Repeatability-First-Sent | 可重复性结果 | 响应状态代码 |
|---|---|---|---|
| 有效的 GUID | 格式无效 | 已拒绝 | 400 |
| 格式无效 | 有效日期 | 已拒绝 | 400 |
| 格式无效 | 格式无效 | 已拒绝 | 400 |
| 有效 | 外部跟踪持续时间 | 已拒绝 | 412 (前置条件失败) |
| 有效的新建/未更新请求 | 在跟踪持续时间内 | 已接受 | 正常执行的状态代码 |
| 有效的重复请求 | 在跟踪持续时间内,但与以前的请求不匹配 | 已拒绝 | 400 |
| 有效的重复请求 | 在跟踪持续时间内, 匹配上一个请求 | 已接受 | 在 Email 发送 API 中: - 如果原始请求仍在进行中:409 - 如果原始请求的状态代码为 2xx 或 4xx,则返回该状态代码。 - 如果原始请求的状态代码为 5xx,则从重新执行请求时返回状态代码。 |
故障排除
如果发送的请求的第一个发送时间戳在最近 5 分钟内,但仍收到“412 (前置条件失败”) 错误消息,并显示“可重复性第一次发送标头不在 5 分钟时段内”。,请确保检查客户端计算机的时钟已同步到时间服务器。
另请参阅
有关Azure 通信服务的其他信息,还可以查看我们的其他文档源:
- Azure 通信服务产品概述 - 通信服务产品概述。
- Azure 通信服务概念文档 - 通信服务概念文档,本文档将提供有关如何使用通信服务的其他信息,包括如何使用其可用 SDK。
- Email发送 API - 电子邮件发送Azure 通信服务,本文档将提供有关通过 Azure 通信服务 发送电子邮件的 API 的其他信息。