package client import ( "crypto/tls" "net/http" ) type Client struct { httpClient *http.Client authenticator Authenticator userAgent string } func NewClient() *Client { defaultTripper := NewDefaultTransport() httpClient := &http.Client{ Transport: defaultTripper, } return &Client{ httpClient: httpClient, userAgent: "ociClient/1.0", } } func (cli *Client) SetAuthenticator(auth Authenticator) { cli.authenticator = auth } func (cli *Client) SetTransport(transport http.RoundTripper) { cli.httpClient.Transport = transport } type WrapTransport struct { transport http.RoundTripper } func NewWrapTransport(transport http.RoundTripper) *WrapTransport { return &WrapTransport{ transport: transport, } } func (wrap *WrapTransport) RoundTrip(req *http.Request) (*http.Response, error) { return wrap.transport.RoundTrip(req) } type DefaultTransport struct { transport http.RoundTripper } func NewDefaultTransport() *DefaultTransport { return &DefaultTransport{ transport: &http.Transport{ TLSClientConfig: &tls.Config{ InsecureSkipVerify: true, }, }, } } func (wrap *DefaultTransport) RoundTrip(req *http.Request) (*http.Response, error) { return wrap.transport.RoundTrip(req) }