Ankh.HTTP (ankh v0.14.4)

HTTP public interface

This module implements Ankh public APIs and provides protocol negotiation.

Link to this section Summary

Types

HTTP body

HTTP Header

HTTP Header name

HTTP Header value

HTTP Headers

Functions

Accepts an HTTP connection

Closes the underlying connection

Establishes an HTTP connection to a server

Reports a connection error

Sends a request to a server

Sends a response to a client request

Receives data form the the peer and returns responses

Link to this section Types

Specs

body() :: iodata()

HTTP body

Specs

complete() :: boolean()

Specs

header() :: {header_name(), header_value()}

HTTP Header

Link to this type

header_name()

Specs

header_name() :: String.t()

HTTP Header name

Link to this type

header_value()

Specs

header_value() :: String.t()

HTTP Header value

Specs

headers() :: [header()]

HTTP Headers

Specs

response() ::
  {:data, reference(), iodata(), complete()}
  | {:headers | :push_promise, reference(), headers(), complete()}
  | {:error, reference(), Ankh.HTTP2.Error.t(), complete()}

Link to this section Functions

Link to this function

accept(uri, socket, options \\ [])

Specs

accept(URI.t(), Ankh.Transport.socket(), Ankh.Transport.options()) ::
  {:ok, Ankh.Protocol.t()} | {:error, any()}

Accepts an HTTP connection

After accepting the connection, stream will receive requests from the client and respond can be used to send replies.

Link to this function

close(protocol)

Specs

close(Ankh.Protocol.t()) :: :ok | {:error, any()}

Closes the underlying connection

Link to this function

connect(uri, options \\ [])

Specs

connect(URI.t(), Ankh.Transport.options()) ::
  {:ok, Ankh.Protocol.t()} | {:error, any()}

Establishes an HTTP connection to a server

After establishing the connection, request can be user to send request to the server and stream can be used to receive receive responses.

Link to this function

error(protocol)

Specs

error(Ankh.Protocol.t()) :: :ok | {:error, any()}

Reports a connection error

Link to this function

header_name_valid?(name, strict)

Specs

header_name_valid?(header_name(), boolean()) :: boolean()
Link to this function

request(protocol, request)

Specs

Sends a request to a server

Needs a connection to be established via connect beforehand.

Link to this function

respond(protocol, reference, response)

Specs

Sends a response to a client request

Needs a connection to be accepted via accept beforehand.

Link to this function

stream(protocol, msg)

Specs

stream(Ankh.Protocol.t(), any()) ::
  {:ok, Ankh.Protocol.t(), any()} | {:error, any()}

Receives data form the the peer and returns responses

Link to this function

validate_trailers(list, strict)

Specs

validate_trailers(headers(), boolean()) :: :ok | {:error, :protocol_error}