Reputation: 20412
I would like to make an http call using an http client with these characteristics:
Hence, I am looking for a solution with http.Client
rather than with trasport.RoundTrip
how can I do that?
Upvotes: 1
Views: 4434
Reputation: 1605
client := &http.Client{
CheckRedirect: func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
},
}
According to https://pkg.go.dev/net/http#Client.CheckRedirect
Upvotes: 1
Reputation: 1031
If you use a http.Client
, you have the option of using the CheckRedirect
field.
This field takes a custom function which can then handle any redirects if an error is received by the initial request.
A simple example might be something like this:
client: &http.Client{
CheckRedirect: func(req *http.Request, via []*http.Request) error {
return errors.New("something bad happened") // or maybe the error from the request
},
}
You could also return the http.ErrUseLastResponse
error which returns the most recent response with its body unclosed.
Upvotes: 11