-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 =
+ Http_daemon.send_basic_headers ~code:(`Code 200) outchan;
+ Http_daemon.send_CRLF 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" req#body)
+ in
+ output_string outchan str
+
+let spec =
+ { Http_daemon.default_spec with
+ callback = callback;
+ port = 9999;
+ }
+
+let _ = Http_daemon.main spec