func NewHandlerCmd(method, rawURL string, fn func(*Context, *http.Response, error)) (*HandlerCmd, error) {
	parsedURL, err := url.Parse(rawURL)
	if err != nil {
		return nil, err
	}
	return &HandlerCmd{&Cmd{parsedURL, method}, HandlerFunc(fn)}, nil
}
NewHandlerCmd creates a HandlerCmd for the provided request and callback
handler function.
package fetchbot
import (
	"io"
	"net/http"
	"net/url"
)
type Command interface {
	URL() *url.URL
	Method() string
}
type BasicAuthProvider interface {
	BasicAuth() (user string, pwd string)
}
type ReaderProvider interface {
	Reader() io.Reader
}
type ValuesProvider interface {
	Values() url.Values
}
type CookiesProvider interface {
	Cookies() []*http.Cookie
}
type HeaderProvider interface {
	Header() http.Header
}
type Cmd struct {
	U *url.URL
	M string
}
func (c *Cmd) URL() *url.URL {
	return c.U
}
func (c *Cmd) Method() string {
	return c.M
}
type HandlerCmd struct {
	*Cmd
	HandlerFunc
}