func (t Transport) RoundTrip(req *http.Request) (*http.Response, error) {
	if t.Proxy != nil {
		url, err := t.Proxy(req)
		if err != nil {
			return nil, err
		}
		req.URL = url
	}
	if t.Next != nil {
		return t.Next.RoundTrip(req)
	}
	return http.DefaultTransport.RoundTrip(req)
}
RoundTrip implements the RoundTripper interface.
package proxy
import (
	"net/http"
	"net/url"
)
type Transport struct {
	Proxy func(*http.Request) (*url.URL, error)
	Next http.RoundTripper
}