package cohttp-lwt-unix

  1. Overview
  2. Docs

Module Cohttp_lwt_unix.ResponseSource

include module type of struct include Cohttp.Response end

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 Cohttp.S.Response
Sourcetype t = Cohttp.Response.t = {
  1. encoding : Cohttp.Transfer.encoding;
    (*

    Transfer encoding of this HTTP response

    *)
  2. headers : Cohttp.Header.t;
    (*

    response HTTP headers

    *)
  3. version : Cohttp.Code.version;
    (*

    (** HTTP version, usually 1.1 *)

    *)
  4. status : Cohttp.Code.status_code;
    (*

    HTTP status code of the response

    *)
  5. flush : bool;
}
include Sexplib0.Sexpable.S with type t := t
Sourceval t_of_sexp : Sexplib0.Sexp.t -> t
Sourceval sexp_of_t : t -> Sexplib0.Sexp.t
Sourceval headers : t -> Cohttp.Header.t
Sourceval version : t -> Cohttp.Code.version
Sourceval flush : t -> bool
Sourceval compare : t -> t -> int
Sourceval make : ?version:Cohttp.Code.version -> ?status:Cohttp.Code.status_code -> ?flush:bool -> ?encoding:Cohttp.Transfer.encoding -> ?headers:Cohttp.Header.t -> unit -> t

The response creates by make ~encoding ~headers () has an encoding value determined from the content of headers or if no proper header is present, using the value of encoding. Checked headers are "content-length", "content-range" and "transfer-encoding". The default value of encoding is chunked.

Sourceval pp_hum : Format.formatter -> t -> unit

Human-readable output, used by the toplevel printer

Functor to construct the IO-specific response handling function

include sig ... end
Sourcetype reader
Sourcetype writer
Sourcemodule IO : sig ... end
Sourceval read : IO.ic -> [ `Eof | `Invalid of string | `Ok of t ] IO.t
Sourceval has_body : t -> [ `No | `Unknown | `Yes ]
Sourceval make_body_writer : ?flush:bool -> t -> IO.oc -> writer
Sourceval make_body_reader : t -> IO.ic -> reader
Sourceval read_body_chunk : reader -> Cohttp.Transfer.chunk IO.t
Sourceval write_header : t -> IO.oc -> unit IO.t
Sourceval write_body : writer -> string -> unit IO.t
Sourceval write : ?flush:bool -> (writer -> unit IO.t) -> t -> IO.oc -> unit IO.t
OCaml

Innovation. Community. Security.