]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/ocaml-http/examples/dump_args.ml
ocaml 3.09 transition
[helm.git] / helm / DEVEL / ocaml-http / examples / dump_args.ml
index ef4630fdec715cf86fcbe304a40f4dc49af8cce1..ab082112aca95e554a1a67ac4a9442059fa137a5 100644 (file)
@@ -2,7 +2,7 @@
 (*
   OCaml HTTP - do it yourself (fully OCaml) HTTP daemon
 
-  Copyright (C) <2002> Stefano Zacchiroli <zack@cs.unibo.it>
+  Copyright (C) <2002-2004> Stefano Zacchiroli <zack@cs.unibo.it>
 
   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
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *)
 
-open Printf;;
-
-let dump_args path args =
-  Printf.sprintf
-    "PATH: %s\nARGS:\n%s"
-    path
-    (String.concat
-      ""
-      (List.map
-        (fun (name, value) -> sprintf "\tNAME: '%s', VALUE: '%s'\n" name value)
-        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 ~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