func Put(URL string) *Rq {
	return New("PUT", URL)
}
Put is a shortcut of #New
package rq
import (
	"fmt"
	"io"
	"strings"
)
type Rq struct {
	URL    string `json:"url"`
	Method string `json:"method"`
	Query  map[string][]string `json:"query"`
	Form   map[string][]string `json:"form"`
	Header map[string][]string `json:"header"`
	Body io.Reader `json:"-"`
}
func (rq *Rq) String() string {
	str := fmt.Sprintf("%s %s", rq.Method, rq.URL)
	if len(rq.Query) > 0 {
		str = str + fmt.Sprintf("\nQuery:\n%s", printRqData(rq.Query))
	}
	if len(rq.Form) > 0 {
		str = str + fmt.Sprintf("\nForm:\n%s", printRqData(rq.Form))
	}
	if len(rq.Header) > 0 {
		str = str + fmt.Sprintf("\nHeader:\n%s", printRqData(rq.Header))
	}
	if rq.Body != nil {
		str = str + fmt.Sprintf("\nBody:\n\t%T: %v", rq.Body, rq.Body)
	}
	return str
}
func printRqData(data map[string][]string) string {
	lines := []string{}
	for key, arr := range data {
		lines = append(lines, fmt.Sprintf("\t%s: %s", key, strings.Join(arr, ", ")))
	}
	return strings.Join(lines, "\n")
}
func New(method, URL string) *Rq {
	return &Rq{
		URL:    URL,
		Method: method,
		Query:  map[string][]string{},
		Form:   map[string][]string{},
		Header: map[string][]string{},
	}
}
func Get(URL string) *Rq {
	return New("GET", URL)
}
func Post(URL string) *Rq {
	return New("POST", URL)
}