func NewRequest(method string, URL string, args ...RequestOption) (req *Request, err error) {
	req = &Request{}                      
	req.Method = strings.ToUpper(method)  
	req.URL = URL
	for _, arg := range args {
		if err := arg.bindRequest(req); err != nil {
			return nil, WrapErr(err, "set request parameters failed.")
		}
	}
	return req, nil
}
NewRequest construct a Request by passing the parameters.

You can construct this request by passing the following parameters:
method: Method for the request.
url: URL for the request.
direwolf.Header: HTTP Headers to send.
direwolf.Params: Parameters to send in the query string.
direwolf.Cookies: Cookies to send.
direwolf.PostForm: Post data form to send.
direwolf.Body: Post body to send.
direwolf.Proxy: Proxy url to use.
direwolf.Timeout: Request Timeout.
direwolf.RedirectNum: Number of Request allowed to redirect.
package direwolf
import (
	"net/http"
	"strings"
)
type Request struct {
	Method        string
	URL           string
	Headers       http.Header
	Body          []byte
	JsonBody      []byte
	Params        *Params
	PostForm      *PostForm
	Cookies       Cookies
	Proxy         *Proxy
	RedirectNum   int
	Timeout       int
	MultipartForm *MultipartForm
}