in amazon-chime-sdk/src/main/java/com/amazonaws/services/chime/sdk/meetings/internal/utils/HttpUtils.kt [36:59]
suspend fun post(
url: URL,
body: String,
backOffRetry: BackOffRetry = DefaultBackOffRetry(),
logger: Logger? = null,
headers: Map<String, String> = emptyMap()
): HttpResponse {
var response: HttpResponse
do {
response = makePostRequest(url, body, logger, headers)
if (response.httpException == null || !backOffRetry.isRetryableCode(
response.httpException?.errorCode ?: 0
)
) {
return response
}
backOffRetry.incrementRetryCount()
val waitTime = backOffRetry.calculateBackOff()
if (waitTime > 0) {
delay(waitTime)
}
} while (backOffRetry.isRetryCountLimitReached())
return response
}