X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=wrappers%2Fpl_HTTP_Request_Common.ml;fp=wrappers%2Fpl_HTTP_Request_Common.ml;h=f027b58c95c9f9b9b386d679914a41990c96e699;hb=f71f13bd5e85b5cca4e9c2e63bf9d9c3283d66cf;hp=0000000000000000000000000000000000000000;hpb=12c06e82e99722ba478d9d9c10eea78397d649c7;p=perl4caml.git diff --git a/wrappers/pl_HTTP_Request_Common.ml b/wrappers/pl_HTTP_Request_Common.ml new file mode 100644 index 0000000..f027b58 --- /dev/null +++ b/wrappers/pl_HTTP_Request_Common.ml @@ -0,0 +1,38 @@ +(** Wrapper around Perl [HTTP::Request::Common] class. + * + * Copyright (C) 2003 Merjis Ltd. + * + * $Id: pl_HTTP_Request_Common.ml,v 1.1 2004-11-22 17:08:36 rich Exp $ + *) + +open Perl + +open Pl_HTTP_Request + +let _ = eval "use HTTP::Request::Common" + +let get, head, put = + let dofn fn url headers = + let args = + sv_of_string url :: + List.fold_right (fun (k, v) rest -> + sv_of_string k :: sv_of_string v :: rest) + headers [] in + new http_request (call ~fn args) + in + let get = dofn "GET" in + let head = dofn "HEAD" in + let put = dofn "PUT" in + get, head, put + +let post url ?form headers = + let hv = hv_empty () in + (match form with + | None -> () + | Some xs -> List.iter (fun (k, v) -> hv_set hv k (sv_of_string v)) xs); + let args = + sv_of_string url :: hashref hv :: + List.fold_right (fun (k, v) rest -> + sv_of_string k :: sv_of_string v :: rest) + headers [] in + new http_request (call ~fn:"POST" args)