X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Focaml-http%2Fexamples%2Fdump_args.ml;h=ab082112aca95e554a1a67ac4a9442059fa137a5;hb=4167cea65ca58897d1a3dbb81ff95de5074700cc;hp=6f3f60bbb30418e457938d0cb65af665dbbd708e;hpb=6a8da4dd52033adfe80533f7467439aec1561147;p=helm.git diff --git a/helm/DEVEL/ocaml-http/examples/dump_args.ml b/helm/DEVEL/ocaml-http/examples/dump_args.ml index 6f3f60bbb..ab082112a 100644 --- a/helm/DEVEL/ocaml-http/examples/dump_args.ml +++ b/helm/DEVEL/ocaml-http/examples/dump_args.ml @@ -2,7 +2,7 @@ (* OCaml HTTP - do it yourself (fully OCaml) HTTP daemon - Copyright (C) <2002> Stefano Zacchiroli + Copyright (C) <2002-2004> Stefano Zacchiroli This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,31 +19,30 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) -let dump_args path args = - Printf.sprintf - "PATH: %s\nARGS:\n%s" - path - (String.concat - "" - (List.map - (fun (name, value) -> "\tNAME: " ^ name ^ ", VALUE: " ^ value ^ "\n") - args)) -in -let callback path args outchan = - match path with - | "/gone" -> - Http_daemon.respond_redirect - ~location:"/foo" ~body:"REDIRECT" ~code:302 outchan - | "/error" -> - Http_daemon.respond_error ~body:"ERROR" ~code:500 outchan - | _ -> - begin - Http_daemon.send_basic_headers ~code:200 outchan; - Http_daemon.send_CRLF outchan; - output_string outchan (dump_args path args) - end -in -print_endline "Starting custom Http_daemon ..."; -flush stdout; -Http_daemon.start ~addr:"127.0.0.1" ~port:9999 callback +open Printf +open Http_types + +let callback req outchan = + let str = + (sprintf "request path = %s\n" req#path) ^ + (sprintf "request GET params = %s\n" + (String.concat ";" + (List.map (fun (h,v) -> String.concat "=" [h;v]) req#params_GET))) ^ + (sprintf "request POST params = %s\n" + (String.concat ";" + (List.map (fun (h,v) -> String.concat "=" [h;v]) req#params_POST))) ^ + (sprintf "request ALL params = %s\n" + (String.concat ";" + (List.map (fun (h,v) -> String.concat "=" [h;v]) req#params))) ^ + (sprintf "request BODY = '%s'\n\n" req#body) + in + Http_daemon.respond ~code:(`Code 200) ~body: str outchan + +let spec = + { Http_daemon.default_spec with + callback = callback; + port = 9999; + } + +let _ = Http_daemon.main spec