http2.ConfigureTransports and H2C

269 views
Skip to first unread message

Kirth Gersen

unread,
Nov 13, 2021, 11:53:13 AM11/13/21
to golang-nuts

i'm trying to use http client to connect in http/2 clear text (H2C).
this works:

var dialer = &net.Dialer{
Timeout: 5 * time.Second, // fail quick
FallbackDelay: -1, // don't use Happy Eyeballs
}
rt = &http2.Transport{
AllowHTTP: true,
DialTLS: func(network, addr string, cfg *tls.Config) (net.Conn, error) {
return dialer.Dial(network, addr)
},
}
....
rt.RoundTrip(some request)

but this doesn't:

// same dialer
var netTransport = http.DefaultTransport.(*http.Transport).Clone()
netTransport.DialContext = dialer.DialContext
var rt http.RoundTripper = netTransport
rt2, err := http2.ConfigureTransports(netTransport)
if err != nil {
log.Fatal(err)
}
rt2.AllowHTTP = true
....
rt.RoundTrip(some request)


what am I missing ?
how to get a common transport that can do http/1.1, h2c and http/2 ?


Reply all
Reply to author
Forward
0 new messages