yes, http.Client is not closed.
i found one thing, golang http.Client has a param 'ForceAttemptHTTP2'. it will use http2 first, except the server response is http1. And if you don't close body when use http2, theres's no leak.
here is a command to check where server supports http2.0.
curl -I -v --http2 example.com/xxx/xxx
then you can see ALPN details for http2.0.