Go: cmd/go/internal/web Index | Files

package web

import "cmd/go/internal/web"

Package web defines minimal helper routines for accessing HTTP/HTTPS resources without requiring external dependenicies on the net package.

If the cmd_go_bootstrap build tag is present, web avoids the use of the net package and returns errors for all network operations.

Index

Package Files

api.go http.go url.go url_other.go

func GetBytes Uses

func GetBytes(u *url.URL) ([]byte, error)

GetBytes returns the body of the requested resource, or an error if the response status was not http.StatusOK.

GetBytes is a convenience wrapper around Get and Response.Err.

func Join Uses

func Join(u *url.URL, path string) *url.URL

Join returns the result of adding the slash-separated path elements to the end of u's path.

func OpenBrowser Uses

func OpenBrowser(url string) (opened bool)

OpenBrowser attempts to open the requested URL in a web browser.

func Redacted Uses

func Redacted(u *url.URL) string

Redacted returns a redacted string form of the URL, suitable for printing in error messages. The string form replaces any non-empty password in the original URL with "[redacted]".

type HTTPError Uses

type HTTPError struct {
    URL        string // redacted
    Status     string
    StatusCode int
}

An HTTPError describes an HTTP error response (non-200 result).

func (*HTTPError) Error Uses

func (e *HTTPError) Error() string

func (*HTTPError) Is Uses

func (e *HTTPError) Is(target error) bool

type Response Uses

type Response struct {
    URL        string // redacted
    Status     string
    StatusCode int
    Header     map[string][]string
    Body       io.ReadCloser
}

func Get Uses

func Get(security SecurityMode, u *url.URL) (*Response, error)

Get returns the body of the HTTP or HTTPS resource specified at the given URL.

If the URL does not include an explicit scheme, Get first tries "https". If the server does not respond under that scheme and the security mode is Insecure, Get then tries "http". The URL included in the response indicates which scheme was actually used, and it is a redacted URL suitable for use in error messages.

For the "https" scheme only, credentials are attached using the cmd/go/internal/auth package. If the URL itself includes a username and password, it will not be attempted under the "http" scheme unless the security mode is Insecure.

Get returns a non-nil error only if the request did not receive a response under any applicable scheme. (A non-2xx response does not cause an error.)

func (*Response) Err Uses

func (r *Response) Err() error

Err returns an *HTTPError corresponding to the response r. It returns nil if the response r has StatusCode 200 or 0 (unset).

type SecurityMode Uses

type SecurityMode int

SecurityMode specifies whether a function should make network calls using insecure transports (eg, plain text HTTP). The zero value is "secure".

const (
    SecureOnly      SecurityMode = iota // Reject plain HTTP; validate HTTPS.
    DefaultSecurity                     // Allow plain HTTP if explicit; validate HTTPS.
    Insecure                            // Allow plain HTTP if not explicitly HTTPS; skip HTTPS validation.
)

Package web imports 14 packages (graph) and is imported by 12 packages. Updated 2019-09-06. Refresh now. Tools for package owners.