From: rich Date: Tue, 16 Aug 2005 15:39:21 +0000 (+0000) Subject: Added submit_form method. X-Git-Url: http://git.annexia.org/?p=perl4caml.git;a=commitdiff_plain;h=55318cc354e514953bca429618150bb069e9920d Added submit_form method. --- diff --git a/.depend b/.depend index 92d9ad8..43ca867 100644 --- a/.depend +++ b/.depend @@ -38,12 +38,12 @@ wrappers/pl_HTTP_Headers.cmo: perl.cmi wrappers/pl_HTTP_Headers.cmx: perl.cmx wrappers/pl_HTTP_Message.cmo: wrappers/pl_HTTP_Headers.cmo perl.cmi wrappers/pl_HTTP_Message.cmx: wrappers/pl_HTTP_Headers.cmx perl.cmx +wrappers/pl_HTTP_Request_Common.cmo: wrappers/pl_HTTP_Request.cmo perl.cmi +wrappers/pl_HTTP_Request_Common.cmx: wrappers/pl_HTTP_Request.cmx perl.cmx wrappers/pl_HTTP_Request.cmo: wrappers/pl_URI.cmo \ wrappers/pl_HTTP_Message.cmo perl.cmi wrappers/pl_HTTP_Request.cmx: wrappers/pl_URI.cmx \ wrappers/pl_HTTP_Message.cmx perl.cmx -wrappers/pl_HTTP_Request_Common.cmo: wrappers/pl_HTTP_Request.cmo perl.cmi -wrappers/pl_HTTP_Request_Common.cmx: wrappers/pl_HTTP_Request.cmx perl.cmx wrappers/pl_HTTP_Response.cmo: wrappers/pl_HTTP_Request.cmo \ wrappers/pl_HTTP_Message.cmo perl.cmi wrappers/pl_HTTP_Response.cmx: wrappers/pl_HTTP_Request.cmx \ @@ -52,14 +52,14 @@ wrappers/pl_LWP_UserAgent.cmo: wrappers/pl_HTTP_Response.cmo \ wrappers/pl_HTTP_Request.cmo wrappers/pl_HTTP_Cookies.cmo perl.cmi wrappers/pl_LWP_UserAgent.cmx: wrappers/pl_HTTP_Response.cmx \ wrappers/pl_HTTP_Request.cmx wrappers/pl_HTTP_Cookies.cmx perl.cmx +wrappers/pl_Net_Google_Cache.cmo: perl.cmi +wrappers/pl_Net_Google_Cache.cmx: perl.cmx wrappers/pl_Net_Google.cmo: wrappers/pl_Net_Google_Spelling.cmo \ wrappers/pl_Net_Google_Search.cmo wrappers/pl_Net_Google_Cache.cmo \ perl.cmi wrappers/pl_Net_Google.cmx: wrappers/pl_Net_Google_Spelling.cmx \ wrappers/pl_Net_Google_Search.cmx wrappers/pl_Net_Google_Cache.cmx \ perl.cmx -wrappers/pl_Net_Google_Cache.cmo: perl.cmi -wrappers/pl_Net_Google_Cache.cmx: perl.cmx wrappers/pl_Net_Google_Response.cmo: perl.cmi wrappers/pl_Net_Google_Response.cmx: perl.cmx wrappers/pl_Net_Google_Search.cmo: wrappers/pl_Net_Google_Response.cmo \ diff --git a/wrappers/pl_WWW_Mechanize.ml b/wrappers/pl_WWW_Mechanize.ml index d5a2376..f9e4604 100644 --- a/wrappers/pl_WWW_Mechanize.ml +++ b/wrappers/pl_WWW_Mechanize.ml @@ -2,7 +2,7 @@ * * Copyright (C) 2004 Merjis Ltd. * - * $Id: pl_WWW_Mechanize.ml,v 1.5 2005-05-19 11:10:18 rich Exp $ + * $Id: pl_WWW_Mechanize.ml,v 1.6 2005-08-16 15:39:22 rich Exp $ *) open Perl @@ -129,7 +129,33 @@ object (self) method submit () = call_method_void sv "submit" [] - (*method submit_form ?form_number ?form_name ?fields ?button ?xy () *) + method submit_form ?form_number ?form_name ?fields ?button ?xy () = + let args = ref [] in + let add name f = function + | None -> () + | Some p -> args := sv_of_string name :: f p :: !args + in + add "form_number" sv_of_int form_number; + add "form_name" sv_of_string form_name; + (match fields with + | None -> () + | Some fields -> + let hv = hv_empty () in + List.iter ( + fun (name, value) -> + hv_set hv name (sv_of_string value) + ) fields; + let sv = hashref hv in + args := sv_of_string "fields" :: sv :: !args + ); + add "button" sv_of_string button; + (match xy with + | None -> () + | Some (x, y) -> + args := sv_of_string "x" :: sv_of_int x :: + sv_of_string "y" :: sv_of_int y :: !args); + let sv = call_method sv "submit_form" !args in + new Pl_HTTP_Response.http_response sv method success = let sv = call_method sv "success" [] in