func MustNew(options ...Option) *Requester {
	b := &Requester{}
	b.MustApply(options...)
	return b
}
MustNew creates a new Requester, applying all options.  If
an error occurs applying options, this will panic.
package requester
import (
	"bytes"
	"context"
	"github.com/ansel1/merry"
	"io"
	"io/ioutil"
	"net/http"
	"net/url"
	"strconv"
	"strings"
)
type Requester struct {
	Method string
	URL    *url.URL
	Header http.Header
	GetBody          func() (io.ReadCloser, error)
	ContentLength    int64
	TransferEncoding []string
	Close            bool
	Host             string
	Trailer          http.Header
	QueryParams url.Values
	Body interface{}
	Marshaler Marshaler
	Doer Doer
	Middleware []Middleware
	Unmarshaler Unmarshaler
}
func New(options ...Option) (*Requester, error) {
	b := &Requester{}
	err := b.Apply(options...)
	if err != nil {
		return nil, merry.Wrap(err)
	}
	return b, nil
}