Module B0_http

module B0_http: sig .. end
HTTP requests.

Performs HTTP requests via the curl command line tool.

HTTP methods and headers

type meth = [ `CONNECT
| `GET
| `Other of string
| `PUT
| `TRACE ]
The type for HTTP methods.
val meth_to_string : meth -> string
meth_to_string m is a string representation of m.
type headers = (string * string) list 
The type for HTTP headers.

HTTP requests

type req 
The type for HTTP requests.
val req : ?headers:headers ->
?body:string -> uri:string -> meth -> req
req uri m ~headers ~body is a request on uri with method m, headers headers (defaults to []) and body body (defaults to "").
val req_uri : req -> string
req_uri r is r's request URI.
val req_meth : req -> meth
req_meth r is r's HTTP method.
val req_headers : req -> headers
req_headers r is r's headers.
val req_body : req -> string
req_body r is r's body.

HTTP responses

type resp 
The type for HTTP responses.
val resp_headers : resp -> headers
resp_headers r are the HTTP response headers.
val resp_status : resp -> int
resp_status r is the HTTP response status.
val resp_body : resp -> string
resp_body r is the HTTP response body.

Performing requests

val perform : ?follow:bool -> req -> resp B0.result
perform r performs request r via curl which is looked up in the PATH or in the environment variable B0_CURL.

If follow is true (default) HTTP redirects for GET and HEAD requests that return 301, 302, 303, 305 or 307 are automatically followed.