Skip to content
/ digest Public

Package digest provides a drop-in replacement for http.Client that supports HTTP Digest auth for GET and POST (and other) HTTP methods

Notifications You must be signed in to change notification settings

One-com/digest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

digest

import "digest"

Package digest provides a drop-in replacement for http.Client that supports HTTP Digest auth for GET and POST (and other) HTTP methods

digest.go

type Client struct {
    *http.Client
    User     string
    Password string
}

Type Client is a wrapper around http.Client

func NewClient(c *http.Client, Username string, Password string) *Client

NewClient returns a new digest Client instance. If c is nil, a new default client is created. Otherwise, it wraps the given one

func (*Client) Do

func (c *Client) Do(r *http.Request) (resp *http.Response, err error)

Do sends an HTTP request and returns an HTTP response, following policy (such as redirects, cookies, auth) as configured on the client.

If Username and Password are specified in the client, Do performs HTTP Digest authentication against the web server

An error is returned if caused by client policy (such as CheckRedirect), or failure to speak HTTP (such as a network connectivity problem). A non-2xx status code doesn't cause an error.

If the returned error is nil, the Response will contain a non-nil Body which the user is expected to close. If the Body is not closed, the Client's underlying RoundTripper (typically Transport) may not be able to re-use a persistent TCP connection to the server for a subsequent "keep-alive" request.

The request Body, if non-nil, will be closed by the underlying Transport, even on errors.

On error, any Response can be ignored. A non-nil Response with a non-nil error only occurs when CheckRedirect fails, and even then the returned Response.Body is already closed.

Generally Get, Post, or PostForm will be used instead of Do.

If the server replies with a redirect, the Client first uses the CheckRedirect function to determine whether the redirect should be followed. If permitted, a 301, 302, or 303 redirect causes subsequent requests to use HTTP method GET (or HEAD if the original request was HEAD), with no body. A 307 or 308 redirect preserves the original HTTP method and body, provided that the Request.GetBody function is defined. The http.NewRequest function automatically sets GetBody for common standard library body types.

func (*Client) Get

func (c *Client) Get(url string) (resp *http.Response, err error)

Get issues a GET to the specified URL. If the response is one of the following redirect codes, Get follows the redirect after calling the Client's CheckRedirect function:

301 (Moved Permanently)
302 (Found)
303 (See Other)
307 (Temporary Redirect)
308 (Permanent Redirect)

An error is returned if the Client's CheckRedirect function fails or if there was an HTTP protocol error. A non-2xx response doesn't cause an error.

When err is nil, resp always contains a non-nil resp.Body. Caller should close resp.Body when done reading from it.

To make a request with custom headers, use http.NewRequest and Client.Do.

func (*Client) Head

func (c *Client) Head(url string) (resp *http.Response, err error)

Head issues a HEAD to the specified URL. If the response is one of the following redirect codes, Head follows the redirect after calling the Client's CheckRedirect function:

301 (Moved Permanently)
302 (Found)
303 (See Other)
307 (Temporary Redirect)
308 (Permanent Redirect)

func (*Client) Post

func (c *Client) Post(url, contentType string, body io.Reader) (resp *http.Response, err error)

Post issues a POST to the specified URL.

Caller should close resp.Body when done reading from it.

If the provided body is an io.Closer, it is closed after the request.

To set custom headers, use http.NewRequest and Client.Do.

See the Client.Do method documentation for details on how redirects are handled.

func (*Client) PostForm

func (c *Client) PostForm(url string, data url.Values) (resp *http.Response, err error)

PostForm issues a POST to the specified URL, with data's keys and values URL-encoded as the request body.

The Content-Type header is set to application/x-www-form-urlencoded. To set other headers, use http.NewRequest and Client.Do.

When err is nil, resp always contains a non-nil resp.Body. Caller should close resp.Body when done reading from it.

See the Client.Do method documentation for details on how redirects are handled.


Generated by godoc2md

About

Package digest provides a drop-in replacement for http.Client that supports HTTP Digest auth for GET and POST (and other) HTTP methods

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages