func (g *Getter) Get(url string) (*http.Response, error) {
	return g.client.Get(url)
}
Get fetches url with a timeout
package myhttp
import (
	"net"
	"net/http"
	"time"
	"github.com/pkg/errors"
)
const (
	defaultTimeout = time.Second * 3
)
type HTTPGetter interface {
	Get(url string) (*http.Response, error)
	WrapGet(url string, do func(r *http.Response) error) error
}
type Getter struct {
	timeout time.Duration
	client  *http.Client
}
func New(to time.Duration) *Getter {
	if to == 0 {
		to = defaultTimeout
	}
	tp := http.Transport{}
	tp.DialContext = (&net.Dialer{
		Timeout: to,
	}).DialContext
	tp.TLSHandshakeTimeout = to
	tp.ResponseHeaderTimeout = to
	tp.ExpectContinueTimeout = to
	c := http.Client{
		Transport: &tp,
	}
	return &Getter{client: &c}
}