HCHttpCallRequestGetRetryDelay
获取 HTTP 重试延迟(秒)。 默认和最小延迟为 2 秒。
语法
HRESULT HCHttpCallRequestGetRetryDelay(
HCCallHandle call,
uint32_t* retryDelayInSeconds
)
参数
call _In_opt_
类型:HCCallHandle
HTTP 调用的句柄。 传递 nullptr 以获取将来调用的默认值。
retryDelayInSeconds _In_
类型:uint32_t*
重试延迟(秒)。
返回值
类型:HRESULT
此 API 操作的结果代码。 可能的值为 S_OK、E_INVALIDARG 或 E_FAIL。
注意
使用指数后退方式延迟重试。 默认情况下,它将延迟 2 秒,然后下一次重试将延迟 4 秒,然后是 8 秒,依此类推,最多持续 1 分钟,直到调用成功或达到 HTTP 超时窗口(此时调用将失败)。 延迟也在当前和下一个延迟之间抖动以分散服务负载。 HTTP 超时窗口的默认值为 20 秒,你可使用 HCSettingsSetTimeoutWindow() 对其进行更改
如果服务返回的 HTTP 错误具有“Retry-After”标头,则以后所有对该 API 的调用都将立即失败并返回“无法联系服务”的原始错误,直到达到“Retry-After”时间为止。
当发生网络错误或服务器使用以下 HTTP 状态代码之一响应时,
重试 Idempotent 服务调用:
408(请求超时)
429(请求太多)
500(内部服务器错误)
502(错误的网关)
503(服务不可用)
504(网关超时)
要求
头文件:httpProvider.h
库: libHttpClient.GDK.lib