Http
Http module: pure HTTP protocol types, constructors, and transforms.
This is Layer 1 of March's HTTP library. It contains no I/O — only data types and functions for building and inspecting HTTP requests and responses. Libraries that work with HTTP types depend on this alone.
Types
Functions
True for client-error 4xx statuses (caller's fault).
Examples
march> Http.is_client_error(Http.status_not_found())
true
march> Http.is_client_error(Http.status_server_error())
falseTrue for informational 1xx statuses.
Examples
march> Http.is_informational(Status(100))
true
march> Http.is_informational(Status(200))
falseTrue for redirect 3xx statuses.
Examples
march> Http.is_redirect(Http.status_moved())
true
march> Http.is_redirect(Http.status_ok())
falseTrue for server-error 5xx statuses (server's fault).
Examples
march> Http.is_server_error(Http.status_server_error())
true
march> Http.is_server_error(Http.status_not_found())
falseTrue for success 2xx statuses.
Examples
march> Http.is_success(Http.status_ok())
true
march> Http.is_success(Http.status_not_found())
falseRender an HTTP method as its uppercase wire-format string. Other(s) returns its inner string verbatim — useful for non-standard extensions like MKCOL or PROPFIND (WebDAV) which an upstream parser may have wrapped in Other(...).
Examples
march> Http.method_to_string(Get)
"GET"
march> Http.method_to_string(Patch)
"PATCH"
march> Http.method_to_string(Other("MKCOL"))
"MKCOL"Prepend a header to req. The name and value are sanitized: NUL, CR, and LF bytes are removed to block CRLF-injection attacks even when the inputs come from untrusted sources. See sanitize_header_part/1.
Extract the integer status code from a Status.
Examples
march> Http.status_code(Http.status_ok())
200
march> Http.status_code(Status(418))
418Status 500 Internal Server Error.