When non-idempotent requests, e.g. POST, are retried, it can easily lead to data corruption and duplication.
One natural way to skip retrying those is with CheckRetry function. But in that function, one only has the response, and not the request, to make the decision based on. Since the response in nil when there are connection errors, one cannot check response.Request.Method in that case.
It would be pretty awesome to have request passed to CheckRetry alongside the response, but any other solution that would allow to skip retrying based on method would be great too.
Right now I'm having to use two separate http clients, one with retries and one without, depending on the method.
When non-idempotent requests, e.g. POST, are retried, it can easily lead to data corruption and duplication. One natural way to skip retrying those is with
CheckRetry
function. But in that function, one only has the response, and not the request, to make the decision based on. Since the response innil
when there are connection errors, one cannot checkresponse.Request.Method
in that case.It would be pretty awesome to have request passed to
CheckRetry
alongside the response, but any other solution that would allow to skip retrying based on method would be great too.Right now I'm having to use two separate http clients, one with retries and one without, depending on the method.