Ankh.HTTP (ankh v0.12.0)
Ankh HTTP public API
Link to this section Summary
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
body()
Specs
body() :: iodata()
HTTP body
complete()
Specs
complete() :: boolean()
header()
Specs
header() :: {header_name(), header_value()}
HTTP Header
header_name()
Specs
header_name() :: String.t()
HTTP Header name
header_value()
Specs
header_value() :: String.t()
HTTP Header value
headers()
Specs
headers() :: [header()]
HTTP Headers
response()
Specs
Link to this section Functions
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.
close(protocol)
Specs
close(Ankh.Protocol.t()) :: :ok | {:error, any()}
Closes the underlying connection
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.
error(protocol)
Specs
error(Ankh.Protocol.t()) :: :ok | {:error, any()}
Reports a connection error
request(protocol, request)
Specs
request(Ankh.Protocol.t(), Ankh.HTTP.Request.t()) :: {:ok, Ankh.Protocol.t(), Ankh.Protocol.request_ref()} | {:error, any()}
Sends a request to a server
Needs a connection to be established via connect
beforehand.
respond(protocol, reference, response)
Specs
respond(Ankh.Protocol.t(), Ankh.Protocol.request_ref(), Ankh.HTTP.Response.t()) :: {:ok, Ankh.Protocol.t()} | {:error, any()}
Sends a response to a client request
Needs a connection to be accepted via accept
beforehand.
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
validate_headers(headers, strict, forbidden \\ [])
Specs
validate_headers(headers(), boolean(), [header_name()]) :: :ok | {:error, :protocol_error}