...

Package requests

import "gitlab.hexacode.org/go-libs/requests"
Overview
Index

Overview ▾

Constants

HTTP status codes as registered with IANA. See: https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml

const (
    StatusContinue           = 100 // RFC 9110, 15.2.1
    StatusSwitchingProtocols = 101 // RFC 9110, 15.2.2
    StatusProcessing         = 102 // RFC 2518, 10.1
    StatusEarlyHints         = 103 // RFC 8297

    StatusOK                   = 200 // RFC 9110, 15.3.1
    StatusCreated              = 201 // RFC 9110, 15.3.2
    StatusAccepted             = 202 // RFC 9110, 15.3.3
    StatusNonAuthoritativeInfo = 203 // RFC 9110, 15.3.4
    StatusNoContent            = 204 // RFC 9110, 15.3.5
    StatusResetContent         = 205 // RFC 9110, 15.3.6
    StatusPartialContent       = 206 // RFC 9110, 15.3.7
    StatusMultiStatus          = 207 // RFC 4918, 11.1
    StatusAlreadyReported      = 208 // RFC 5842, 7.1
    StatusIMUsed               = 226 // RFC 3229, 10.4.1

    StatusMultipleChoices  = 300 // RFC 9110, 15.4.1
    StatusMovedPermanently = 301 // RFC 9110, 15.4.2
    StatusFound            = 302 // RFC 9110, 15.4.3
    StatusSeeOther         = 303 // RFC 9110, 15.4.4
    StatusNotModified      = 304 // RFC 9110, 15.4.5
    StatusUseProxy         = 305 // RFC 9110, 15.4.6

    StatusTemporaryRedirect = 307 // RFC 9110, 15.4.8
    StatusPermanentRedirect = 308 // RFC 9110, 15.4.9

    StatusBadRequest                   = 400 // RFC 9110, 15.5.1
    StatusUnauthorized                 = 401 // RFC 9110, 15.5.2
    StatusPaymentRequired              = 402 // RFC 9110, 15.5.3
    StatusForbidden                    = 403 // RFC 9110, 15.5.4
    StatusNotFound                     = 404 // RFC 9110, 15.5.5
    StatusMethodNotAllowed             = 405 // RFC 9110, 15.5.6
    StatusNotAcceptable                = 406 // RFC 9110, 15.5.7
    StatusProxyAuthRequired            = 407 // RFC 9110, 15.5.8
    StatusRequestTimeout               = 408 // RFC 9110, 15.5.9
    StatusConflict                     = 409 // RFC 9110, 15.5.10
    StatusGone                         = 410 // RFC 9110, 15.5.11
    StatusLengthRequired               = 411 // RFC 9110, 15.5.12
    StatusPreconditionFailed           = 412 // RFC 9110, 15.5.13
    StatusRequestEntityTooLarge        = 413 // RFC 9110, 15.5.14
    StatusRequestURITooLong            = 414 // RFC 9110, 15.5.15
    StatusUnsupportedMediaType         = 415 // RFC 9110, 15.5.16
    StatusRequestedRangeNotSatisfiable = 416 // RFC 9110, 15.5.17
    StatusExpectationFailed            = 417 // RFC 9110, 15.5.18
    StatusTeapot                       = 418 // RFC 9110, 15.5.19 (Unused)
    StatusMisdirectedRequest           = 421 // RFC 9110, 15.5.20
    StatusUnprocessableEntity          = 422 // RFC 9110, 15.5.21
    StatusLocked                       = 423 // RFC 4918, 11.3
    StatusFailedDependency             = 424 // RFC 4918, 11.4
    StatusTooEarly                     = 425 // RFC 8470, 5.2.
    StatusUpgradeRequired              = 426 // RFC 9110, 15.5.22
    StatusPreconditionRequired         = 428 // RFC 6585, 3
    StatusTooManyRequests              = 429 // RFC 6585, 4
    StatusRequestHeaderFieldsTooLarge  = 431 // RFC 6585, 5
    StatusUnavailableForLegalReasons   = 451 // RFC 7725, 3

    StatusInternalServerError           = 500 // RFC 9110, 15.6.1
    StatusNotImplemented                = 501 // RFC 9110, 15.6.2
    StatusBadGateway                    = 502 // RFC 9110, 15.6.3
    StatusServiceUnavailable            = 503 // RFC 9110, 15.6.4
    StatusGatewayTimeout                = 504 // RFC 9110, 15.6.5
    StatusHTTPVersionNotSupported       = 505 // RFC 9110, 15.6.6
    StatusVariantAlsoNegotiates         = 506 // RFC 2295, 8.1
    StatusInsufficientStorage           = 507 // RFC 4918, 11.5
    StatusLoopDetected                  = 508 // RFC 5842, 7.2
    StatusNotExtended                   = 510 // RFC 2774, 7
    StatusNetworkAuthenticationRequired = 511 // RFC 6585, 6
)

func SetDefaultHeaders

func SetDefaultHeaders(headers hctypes.Dict)

SetDefaultHeaders sets the default headers to use in the request.

headers: hctypes.Dict representing the HTTP headers.

func StatusText

func StatusText(code int) string

StatusText returns a text for the HTTP status code. It returns the empty string if the code is unknown.

type Http

Http represents the HTTP client.

type Http struct {
    Headers hctypes.Dict // the headers to include in the request
}

func NewHttp

func NewHttp(headers hctypes.Dict) *Http

NewHttp creates a new Http instance.

headers: hctypes.Dict representing the HTTP headers. Returns a pointer to Http.

func (*Http) Delete

func (http *Http) Delete(url string, url_param hctypes.Dict, body hctypes.Buffer) (*Output, error)

Delete sends a DELETE request to the specified URL.

url: the URL to send the request to url_param: the URL parameters to include in the request body: the request body to send Returns *Output and error

func (*Http) Get

func (http *Http) Get(url string, url_param hctypes.Dict, body hctypes.Buffer) (*Output, error)

Get sends a GET request to the specified URL.

url: the URL to send the request to url_param: the URL parameters to include in the request body: the request body to send Returns *Output and error

func (*Http) Head

func (http *Http) Head(url string, url_param hctypes.Dict, body hctypes.Buffer) (*Output, error)

Head sends a HEAD request to the specified URL.

url: the URL to send the request to url_param: the URL parameters to include in the request body: the request body to send Returns *Output and error

func (*Http) Options

func (http *Http) Options(url string, url_param hctypes.Dict, body hctypes.Buffer) (*Output, error)

Options sends an OPTIONS request to the specified URL.

url: the URL to send the request to url_param: the URL parameters to include in the request body: the request body to send Returns *Output and error

func (*Http) Patch

func (http *Http) Patch(url string, url_param hctypes.Dict, body hctypes.Buffer) (*Output, error)

Patch sends a PATCH request to the specified URL.

url: the URL to send the request to url_param: the URL parameters to include in the request body: the request body to send Returns *Output and error

func (*Http) Post

func (http *Http) Post(url string, url_param hctypes.Dict, body hctypes.Buffer) (*Output, error)

Post sends a POST request to the specified URL.

url: the URL to send the request to url_param: the URL parameters to include in the request body: the request body to send Returns *Output and error

func (*Http) Put

func (http *Http) Put(url string, url_param hctypes.Dict, body hctypes.Buffer) (*Output, error)

Put sends a PUT request to the specified URL.

url: the URL to send the request to url_param: the URL parameters to include in the request body: the request body to send Returns *Output and error

func (*Http) Request

func (http *Http) Request(method string, url string, url_param hctypes.Dict, body hctypes.Buffer) (*Output, error)

Request sends an HTTP request.

method: string representing the HTTP method. url: string representing the URL of the request. url_param: hctypes.Dict representing the URL parameters. body: hctypes.Buffer representing the request body. Returns a pointer to Output and an error.

func (*Http) Trace

func (http *Http) Trace(url string, url_param hctypes.Dict, body hctypes.Buffer) (*Output, error)

Trace sends a TRACE request to the specified URL.

url: the URL to send the request to url_param: the URL parameters to include in the request body: the request body to send Returns *Output and error

type Input

Input represents the input of the Request function.

type Input struct {
    Method    string         // GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, TRACE
    URL       string         // the URL to send the request to
    URLParams hctypes.Dict   // the URL parameters to include in the request
    Headers   hctypes.Dict   // the headers to include in the request
    Body      hctypes.Buffer // the request body to send
}

type Output

Output represents the output of the Request function.

type Output struct {
    Status     int            // the HTTP status code returned by the server
    StatusText string         // the HTTP status text returned by the server
    Headers    hctypes.Dict   // the headers returned by the server
    Body       hctypes.Buffer // the body returned by the server
}

func Request

func Request(in *Input) (*Output, error)

Request sends an HTTP request.

in: *Input representing the input of the Request function.