http.Client
の名前解決をローカルに適当に立てた DNS sever に向けたいときに.
production ready かどうかは知らない
dnsAddr := ":5300"
dialerFunc := func(ctx context.Context, network, address string) (net.Conn, error) {
d := net.Dialer{}
return d.DialContext(ctx, "udp", dnsAddr)
}
resolver := &net.Resolver{PreferGo: true, Dial: dialerFunc}
dialer := net.Dialer{Resolver: resolver}
transport := &http.Transport{
Dial: dialer.Dial,
DialContext: dialer.DialContext,
}
httpClient := &http.Client{Transport: transport}
http.DefaultTransport
みたいなのを破壊せずコピーしてくる便利な方法ないのかな