f027b58c95c9f9b9b386d679914a41990c96e699
[perl4caml.git] / wrappers / pl_HTTP_Request_Common.ml
1 (** Wrapper around Perl [HTTP::Request::Common] class.
2   *
3   * Copyright (C) 2003 Merjis Ltd.
4   *
5   * $Id: pl_HTTP_Request_Common.ml,v 1.1 2004-11-22 17:08:36 rich Exp $
6   *)
7
8 open Perl
9
10 open Pl_HTTP_Request
11
12 let _ = eval "use HTTP::Request::Common"
13
14 let get, head, put =
15   let dofn fn url headers =
16     let args =
17       sv_of_string url ::
18         List.fold_right (fun (k, v) rest ->
19                            sv_of_string k :: sv_of_string v :: rest)
20         headers [] in
21     new http_request (call ~fn args)
22   in
23   let get = dofn "GET" in
24   let head = dofn "HEAD" in
25   let put = dofn "PUT" in
26   get, head, put
27
28 let post url ?form headers =
29   let hv = hv_empty () in
30   (match form with
31      | None -> ()
32      | Some xs -> List.iter (fun (k, v) -> hv_set hv k (sv_of_string v)) xs);
33   let args =
34     sv_of_string url :: hashref hv ::
35       List.fold_right (fun (k, v) rest ->
36                          sv_of_string k :: sv_of_string v :: rest)
37       headers [] in
38   new http_request (call ~fn:"POST" args)