Module Cohttp_lwt_unix.Client

The Client module implements the full UNIX HTTP client interface, including the UNIX-specific functions defined in C.

include Cohttp_lwt.S.Client with type ctx = Net.ctx
type ctx = Net.ctx
  • parameter ctx

    If provided, no connection cache is used, but Connection_cache.Make_no_cache.create is used to resolve uri and create a dedicated connection with ctx.

    In most cases you should use the more specific helper calls in the interface rather than invoke this function directly. See head, get and post for some examples.

include Cohttp.Generic.Client.S with type 'a io = 'a Lwt.t and type body = Cohttp_lwt.Body.t and type 'a with_context = ?ctx:ctx -> 'a
type 'a io = 'a Lwt.t
type 'a with_context = ?ctx:ctx -> 'a
type body = Cohttp_lwt.Body.t
val map_context : 'a with_context -> ('a -> 'b) -> 'b with_context
val call : (?headers:Http.Header.t -> ?body:body -> ?chunked:bool -> Http.Method.t -> Uri.t -> (Http.Response.t * body) io) with_context

call ?headers ?body ?chunked meth uri

  • returns

    (response, response_body) Consume response_body in a timely fashion. Please see call about how and why.

  • parameter chunked

    use chunked encoding if true. The default is false for compatibility reasons.

val head : (?headers:Http.Header.t -> Uri.t -> Http.Response.t io) with_context
val get : (?headers:Http.Header.t -> Uri.t -> (Http.Response.t * body) io) with_context
val delete : (?body:body -> ?chunked:bool -> ?headers:Http.Header.t -> Uri.t -> (Http.Response.t * body) io) with_context
val post : (?body:body -> ?chunked:bool -> ?headers:Http.Header.t -> Uri.t -> (Http.Response.t * body) io) with_context
val put : (?body:body -> ?chunked:bool -> ?headers:Http.Header.t -> Uri.t -> (Http.Response.t * body) io) with_context
val patch : (?body:body -> ?chunked:bool -> ?headers:Http.Header.t -> Uri.t -> (Http.Response.t * body) io) with_context
val set_cache : Cohttp_lwt.S.call -> unit

Provide a function used to process requests. Please see call. The provided function is only used when no ctx argument is passed to the convenience functions below.

val post_form : ?ctx:ctx -> ?headers:Http.Header.t -> params:(string * string list) list -> Uri.t -> (Http.Response.t * Cohttp_lwt.Body.t) Lwt.t
val callv : ?ctx:ctx -> Uri.t -> (Http.Request.t * Cohttp_lwt.Body.t) Lwt_stream.t -> (Http.Response.t * Cohttp_lwt.Body.t) Lwt_stream.t Lwt.t
val custom_ctx : ?ctx:Conduit_lwt_unix.ctx -> ?resolver:Resolver_lwt.t -> unit -> Net.ctx

custom_ctx ?ctx ?resolver () will return a context that is the same as the default_ctx, but with either the connection handling or resolution module overridden with ctx or resolver respectively. This is useful to supply a Conduit_lwt_unix.ctx with a custom source network interface, or a Resolver_lwt.t with a different name resolution strategy (for instance to override a hostname to point it to a Unix domain socket).