func (c Client) CallRequestWithHeaders(method string, path string, reader io.Reader, headers map[string]string) *Response {
	req, _ := http.NewRequest(method, c.BaseURL+path, reader)
	req.Header.Set("Content-Type", c.ContentType)
	for key, val := range headers {
		req.Header.Set(key, val)
	}
	resp, err := c.Do(req)
	return &Response{resp, err}
}
CallRequestWithHeaders with headers
package utils
import (
	"bytes"
	"encoding/json"
	"errors"
	"io"
	"io/ioutil"
	"net/http"
)
var Default = 0
type Client struct {
	*http.Client
	BaseURL     string
	ContentType string
}
type Response struct {
	Resp *http.Response
	Err  error
}
type InfoExec struct {
	Interface interface{}
	F         func(*http.Response) error
}
type MapExec map[int]InfoExec
var emptyJSON, _ = json.Marshal(struct{}{})
func (c Client) CallRequest(method string, path string, reader io.Reader) *Response {
	return c.CallRequestWithHeaders(method, path, reader, make(map[string]string))
}
func (c Client) CallRequestNoBody(method string, path string) *Response {
	reader := bytes.NewReader(emptyJSON)
	return c.CallRequestWithHeaders(method, path, reader, make(map[string]string))
}
func (c Client) CallRequestNoBodytWithHeaders(method string, path string, headers map[string]string) *Response {
	reader := bytes.NewReader(emptyJSON)
	return c.CallRequestWithHeaders(method, path, reader, headers)
}