package cohttp
Library
Module
Module type
Parameter
Class
Class type
HTTP/1.1 response handling
This contains the metadata for a HTTP/1.1 response header, including the encoding
, headers
, version
, status
code and whether to flush
the connection after every body chunk (useful for server-side events and other long-lived connection protocols). The body is handled by the separate S
module type, as it is dependent on the IO implementation.
The interface exposes a fieldslib
interface which provides individual accessor functions for each of the records below. It also provides sexp
serializers to convert to-and-from an Core
.Std.Sexp.t.
include S.Response with type t = Http.Response.t
type t = Http.Response.t = {
encoding : Transfer.encoding;
(**)headers : Header.t;
(*response HTTP headers
*)version : Code.version;
(*(** HTTP version, usually 1.1 *)
*)status : Code.status_code;
(*HTTP status code of the response
*)flush : bool;
(**)
}
include Ppx_sexp_conv_lib.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
val encoding : t -> Transfer.encoding
val version : t -> Code.version
val status : t -> Code.status_code
val flush : t -> bool
val make :
?version:Code.version ->
?status:Code.status_code ->
?flush:bool ->
?encoding:Transfer.encoding ->
?headers:Header.t ->
unit ->
t
make ()
is a value of t
. The default values for the request, if not specified, are: status
is `Ok
, version
is `HTTP_1_1
, flush
is false
and headers
is Header.empty
. The request encoding value is determined via the Header.get_transfer_encoding
function and, if not found, uses the default value Transfer.Chunked
.
val has_body : t -> [ `No | `Unknown | `Yes ]
val pp_hum : Format.formatter -> t -> unit
Human-readable output, used by the toplevel printer
module Private : sig ... end