cohttp

An OCaml library for HTTP clients and servers
IN THIS PACKAGE
Module Cohttp . Request

This contains the metadata for a HTTP/1.1 request header, including the headers, version, meth and uri. 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.Request
type t = {
headers : Header.t;(*

HTTP request headers

*)
meth : Code.meth;(*

HTTP request method

*)
scheme : string option;(*

URI scheme (http or https)

*)
resource : string;(*

Request path and query

*)
version : Code.version;(*

HTTP version, usually 1.1

*)
encoding : Transfer.encoding;(*

transfer encoding of this HTTP request

*)
}
include Sexplib0.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
val headers : t -> Header.t
val meth : t -> Code.meth
val scheme : t -> string option
val resource : t -> string
val version : t -> Code.version
val encoding : t -> Transfer.encoding
val compare : t -> t -> int
val make : ?meth:Code.meth -> ?version:Code.version -> ?encoding:Transfer.encoding -> ?headers:Header.t -> Uri.t -> t
val is_keep_alive : t -> bool

Return true whether the connection should be reused

val uri : t -> Uri.t
val make_for_client : ?headers:Header.t -> ?chunked:bool -> ?body_length:int64 -> Code.meth -> Uri.t -> t
val pp_hum : Format.formatter -> t -> unit

Human-readable output, used by the toplevel printer

module Make (IO : S.IO) : S.Http_io with type t = t and module IO = IO

Functor to construct the IO-specific HTTP request handling functions