func (client *HTTPClient) Post(path string, body interface{}, headers map[string]string) (*http.Response, error) {
	return client.do("POST", path, body, headers)
}
Post will send a Post request to the path provided and set the post body as the
object passed
package httpify
import (
	"crypto/tls"
	"encoding/json"
	"errors"
	"fmt"
	"net/http"
	"net/url"
	"runtime"
	"strings"
	"time"
	"github.com/Shopify/themekit/src/ratelimiter"
	"github.com/Shopify/themekit/src/release"
	"github.com/Shopify/themekit/src/util"
)
var (
	ErrConnectionIssue = errors.New("DNS problem while connecting to Shopify, this indicates a problem with your internet connection")
	ErrInvalidProxyURL = errors.New("invalid proxy URI")
	httpTransport      = &http.Transport{
		TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
	}
	httpClient = &http.Client{
		Timeout: 30 * time.Second,
	}
	themeKitAccessURL = "https://theme-kit-access.shopifyapps.com/cli"
)
type proxyHandler func(*http.Request) (*url.URL, error)
type Params struct {
	Domain   string
	Password string
	Proxy    string
	Timeout  time.Duration
}
type HTTPClient struct {
	domain   string
	password string
	baseURL  *url.URL
	limit    *ratelimiter.Limiter
	maxRetry int
}
func NewClient(params Params) (*HTTPClient, error) {
	baseURL, err := parseBaseURL(params.Domain)
	if err != nil {
		return nil, err
	}
	if params.Timeout != 0 {
		httpClient.Timeout = params.Timeout
	}
	if params.Proxy != "" {
		parsedURL, err := url.ParseRequestURI(params.Proxy)
		if err != nil {
			return nil, ErrInvalidProxyURL
		}
		httpTransport.Proxy = http.ProxyURL(parsedURL)
		httpClient.Transport = httpTransport
	}
	return &HTTPClient{
		domain:   params.Domain,
		password: params.Password,
		baseURL:  baseURL,
		limit:    ratelimiter.New(params.Domain, 4),
		maxRetry: 5,
	}, nil
}
func (client *HTTPClient) Get(path string, headers map[string]string) (*http.Response, error) {
	return client.do("GET", path, nil, headers)
}