if a redirect with a body is provided, we need to skip the body #2
2 changed files with 8 additions and 0 deletions
|
@ -434,6 +434,12 @@ let request
|
|||
let rec follow_redirect count uri =
|
||||
if count = 0 then Lwt.return_error (`Msg "Redirect limit exceeded")
|
||||
else
|
||||
let f response acc body =
|
||||
if Status.is_redirection response.status then
|
||||
Lwt.return acc
|
||||
else
|
||||
f response acc body
|
||||
in
|
||||
single_request ~ctx ~alpn_protocol ?config tls_config ~meth ~headers
|
||||
?body uri f f_init
|
||||
>>? fun (resp, body) ->
|
||||
|
|
|
@ -40,4 +40,6 @@ val request :
|
|||
~max_redirect ~follow_redirect url body_f body_init] does a HTTP request
|
||||
to [url] using [meth] and the HTTP protocol in [config]. The response is
|
||||
the value of this function. The body is provided in chunks (see [body_f]).
|
||||
If [follow_redirect] is enabled (true by default), [body_f] is not called
|
||||
with the potential body of the redirection.
|
||||
Reasonably defaults are used if not provided. *)
|
||||
|
|
Loading…
Reference in a new issue