<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of class attributes" rel=Appendix href="index_attributes.html"> <link title="Index of class methods" rel=Appendix href="index_methods.html"> <link title="Index of classes" rel=Appendix href="index_classes.html"> <link title="Index of class types" rel=Appendix href="index_class_types.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Uq_gtk" rel="Chapter" href="Uq_gtk.html"> <link title="Equeue" rel="Chapter" href="Equeue.html"> <link title="Unixqueue" rel="Chapter" href="Unixqueue.html"> <link title="Uq_engines" rel="Chapter" href="Uq_engines.html"> <link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html"> <link title="Unixqueue_mt" rel="Chapter" href="Unixqueue_mt.html"> <link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html"> <link title="Uq_ssl" rel="Chapter" href="Uq_ssl.html"> <link title="Uq_tcl" rel="Chapter" href="Uq_tcl.html"> <link title="Netcgi_common" rel="Chapter" href="Netcgi_common.html"> <link title="Netcgi" rel="Chapter" href="Netcgi.html"> <link title="Netcgi_ajp" rel="Chapter" href="Netcgi_ajp.html"> <link title="Netcgi_scgi" rel="Chapter" href="Netcgi_scgi.html"> <link title="Netcgi_cgi" rel="Chapter" href="Netcgi_cgi.html"> <link title="Netcgi_fcgi" rel="Chapter" href="Netcgi_fcgi.html"> <link title="Netcgi_dbi" rel="Chapter" href="Netcgi_dbi.html"> <link title="Netcgi1_compat" rel="Chapter" href="Netcgi1_compat.html"> <link title="Netcgi_test" rel="Chapter" href="Netcgi_test.html"> <link title="Netcgi_porting" rel="Chapter" href="Netcgi_porting.html"> <link title="Netcgi_plex" rel="Chapter" href="Netcgi_plex.html"> <link title="Http_client" rel="Chapter" href="Http_client.html"> <link title="Telnet_client" rel="Chapter" href="Telnet_client.html"> <link title="Ftp_data_endpoint" rel="Chapter" href="Ftp_data_endpoint.html"> <link title="Ftp_client" rel="Chapter" href="Ftp_client.html"> <link title="Nethttpd_types" rel="Chapter" href="Nethttpd_types.html"> <link title="Nethttpd_kernel" rel="Chapter" href="Nethttpd_kernel.html"> <link title="Nethttpd_reactor" rel="Chapter" href="Nethttpd_reactor.html"> <link title="Nethttpd_engine" rel="Chapter" href="Nethttpd_engine.html"> <link title="Nethttpd_services" rel="Chapter" href="Nethttpd_services.html"> <link title="Nethttpd_plex" rel="Chapter" href="Nethttpd_plex.html"> <link title="Nethttpd_intro" rel="Chapter" href="Nethttpd_intro.html"> <link title="Netplex_types" rel="Chapter" href="Netplex_types.html"> <link title="Netplex_mp" rel="Chapter" href="Netplex_mp.html"> <link title="Netplex_mt" rel="Chapter" href="Netplex_mt.html"> <link title="Netplex_log" rel="Chapter" href="Netplex_log.html"> <link title="Netplex_controller" rel="Chapter" href="Netplex_controller.html"> <link title="Netplex_container" rel="Chapter" href="Netplex_container.html"> <link title="Netplex_sockserv" rel="Chapter" href="Netplex_sockserv.html"> <link title="Netplex_workload" rel="Chapter" href="Netplex_workload.html"> <link title="Netplex_main" rel="Chapter" href="Netplex_main.html"> <link title="Netplex_config" rel="Chapter" href="Netplex_config.html"> <link title="Netplex_kit" rel="Chapter" href="Netplex_kit.html"> <link title="Rpc_netplex" rel="Chapter" href="Rpc_netplex.html"> <link title="Netplex_cenv" rel="Chapter" href="Netplex_cenv.html"> <link title="Netplex_intro" rel="Chapter" href="Netplex_intro.html"> <link title="Netshm" rel="Chapter" href="Netshm.html"> <link title="Netshm_data" rel="Chapter" href="Netshm_data.html"> <link title="Netshm_hashtbl" rel="Chapter" href="Netshm_hashtbl.html"> <link title="Netshm_array" rel="Chapter" href="Netshm_array.html"> <link title="Netshm_intro" rel="Chapter" href="Netshm_intro.html"> <link title="Netconversion" rel="Chapter" href="Netconversion.html"> <link title="Netchannels" rel="Chapter" href="Netchannels.html"> <link title="Netstream" rel="Chapter" href="Netstream.html"> <link title="Mimestring" rel="Chapter" href="Mimestring.html"> <link title="Netmime" rel="Chapter" href="Netmime.html"> <link title="Netsendmail" rel="Chapter" href="Netsendmail.html"> <link title="Neturl" rel="Chapter" href="Neturl.html"> <link title="Netaddress" rel="Chapter" href="Netaddress.html"> <link title="Netbuffer" rel="Chapter" href="Netbuffer.html"> <link title="Netdate" rel="Chapter" href="Netdate.html"> <link title="Netencoding" rel="Chapter" href="Netencoding.html"> <link title="Netulex" rel="Chapter" href="Netulex.html"> <link title="Netaccel" rel="Chapter" href="Netaccel.html"> <link title="Netaccel_link" rel="Chapter" href="Netaccel_link.html"> <link title="Nethtml" rel="Chapter" href="Nethtml.html"> <link title="Netstring_str" rel="Chapter" href="Netstring_str.html"> <link title="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html"> <link title="Netstring_mt" rel="Chapter" href="Netstring_mt.html"> <link title="Netmappings" rel="Chapter" href="Netmappings.html"> <link title="Netaux" rel="Chapter" href="Netaux.html"> <link title="Nethttp" rel="Chapter" href="Nethttp.html"> <link title="Netchannels_tut" rel="Chapter" href="Netchannels_tut.html"> <link title="Netmime_tut" rel="Chapter" href="Netmime_tut.html"> <link title="Netsendmail_tut" rel="Chapter" href="Netsendmail_tut.html"> <link title="Netulex_tut" rel="Chapter" href="Netulex_tut.html"> <link title="Neturl_tut" rel="Chapter" href="Neturl_tut.html"> <link title="Netsys" rel="Chapter" href="Netsys.html"> <link title="Netpop" rel="Chapter" href="Netpop.html"> <link title="Rpc_auth_dh" rel="Chapter" href="Rpc_auth_dh.html"> <link title="Rpc_key_service" rel="Chapter" href="Rpc_key_service.html"> <link title="Rpc_time" rel="Chapter" href="Rpc_time.html"> <link title="Rpc_auth_local" rel="Chapter" href="Rpc_auth_local.html"> <link title="Rtypes" rel="Chapter" href="Rtypes.html"> <link title="Xdr" rel="Chapter" href="Xdr.html"> <link title="Rpc" rel="Chapter" href="Rpc.html"> <link title="Rpc_program" rel="Chapter" href="Rpc_program.html"> <link title="Rpc_portmapper_aux" rel="Chapter" href="Rpc_portmapper_aux.html"> <link title="Rpc_packer" rel="Chapter" href="Rpc_packer.html"> <link title="Rpc_transport" rel="Chapter" href="Rpc_transport.html"> <link title="Rpc_client" rel="Chapter" href="Rpc_client.html"> <link title="Rpc_simple_client" rel="Chapter" href="Rpc_simple_client.html"> <link title="Rpc_portmapper_clnt" rel="Chapter" href="Rpc_portmapper_clnt.html"> <link title="Rpc_portmapper" rel="Chapter" href="Rpc_portmapper.html"> <link title="Rpc_server" rel="Chapter" href="Rpc_server.html"> <link title="Rpc_auth_sys" rel="Chapter" href="Rpc_auth_sys.html"> <link title="Rpc_intro" rel="Chapter" href="Rpc_intro.html"> <link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.html"> <link title="Rpc_ssl" rel="Chapter" href="Rpc_ssl.html"> <link title="Rpc_xti_client" rel="Chapter" href="Rpc_xti_client.html"> <link title="Shell_sys" rel="Chapter" href="Shell_sys.html"> <link title="Shell" rel="Chapter" href="Shell.html"> <link title="Shell_uq" rel="Chapter" href="Shell_uq.html"> <link title="Shell_mt" rel="Chapter" href="Shell_mt.html"> <link title="Shell_intro" rel="Chapter" href="Shell_intro.html"> <link title="Netsmtp" rel="Chapter" href="Netsmtp.html"><title>Ocamlnet 2 Reference Manual : Http_client</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">exception</span> <span class="constructor">Bad_message</span> <span class="keyword">of</span> string<br> <span class="keyword">exception</span> <span class="constructor">No_reply</span><br> <span class="keyword">exception</span> <span class="constructor">Too_many_redirections</span><br> <span class="keyword">exception</span> <span class="constructor">Name_resolution_error</span> <span class="keyword">of</span> string<br> <span class="keyword">exception</span> <span class="constructor">URL_syntax_error</span> <span class="keyword">of</span> string<br> <span class="keyword">exception</span> <span class="constructor">Http_protocol</span> <span class="keyword">of</span> exn<br> <span class="keyword">exception</span> <span class="constructor">Http_error</span> <span class="keyword">of</span> (int * string)<br> <span class="keyword">type</span> status =<br> [ <span class="keywordsign">`</span><span class="constructor">Client_error</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Http_protocol_error</span> <span class="keyword">of</span> exn<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Redirection</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Server_error</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Successful</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unserved</span> ]<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a how_to_reconnect =<br> <span class="constructor">Send_again</span><br> <span class="keywordsign">|</span> <span class="constructor">Request_fails</span><br> <span class="keywordsign">|</span> <span class="constructor">Inquire</span> <span class="keyword">of</span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool)<br> <span class="keywordsign">|</span> <span class="constructor">Send_again_if_idem</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a how_to_redirect =<br> <span class="constructor">Redirect</span><br> <span class="keywordsign">|</span> <span class="constructor">Do_not_redirect</span><br> <span class="keywordsign">|</span> <span class="constructor">Redirect_inquire</span> <span class="keyword">of</span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool)<br> <span class="keywordsign">|</span> <span class="constructor">Redirect_if_idem</span><br> <span class="keyword">type</span> private_api<br> <span class="keyword">type</span> response_body_storage =<br> [ <span class="keywordsign">`</span><span class="constructor">Body</span> <span class="keyword">of</span> unit <span class="keywordsign">-></span> <span class="constructor">Netmime</span>.mime_body<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">File</span> <span class="keyword">of</span> unit <span class="keywordsign">-></span> string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Memory</span> ]<br> <span class="keyword">type</span> synchronization = <span class="constructor">Sync</span> <span class="keywordsign">|</span> <span class="constructor">Pipeline</span> <span class="keyword">of</span> int<br> <span class="keyword">type</span> resolver =<br> <span class="constructor">Unixqueue</span>.unix_event_system <span class="keywordsign">-></span><br> string <span class="keywordsign">-></span> (<span class="constructor">Unix</span>.inet_addr option <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> http_options = {<br> synchronization : <span class="constructor">Http_client</span>.synchronization;<br> maximum_connection_failures : int;<br> maximum_message_errors : int;<br> inhibit_persistency : bool;<br> connection_timeout : float;<br> number_of_parallel_connections : int;<br> maximum_redirections : int;<br> handshake_timeout : float;<br> resolver : <span class="constructor">Http_client</span>.resolver;<br> configure_socket : <span class="constructor">Unix</span>.file_descr <span class="keywordsign">-></span> unit;<br> verbose_status : bool;<br> verbose_request_header : bool;<br> verbose_response_header : bool;<br> verbose_request_contents : bool;<br> verbose_response_contents : bool;<br> verbose_connection : bool;<br> }<br> <span class="keyword">type</span> header_kind = [ <span class="keywordsign">`</span><span class="constructor">Base</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Effective</span> ]<br> <span class="keyword">class</span> <span class="keyword">type</span> http_call =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> assoc_multi_req_header : string <span class="keywordsign">-></span> string list<br> <span class="keyword">method</span> assoc_multi_resp_header : string <span class="keywordsign">-></span> string list<br> <span class="keyword">method</span> assoc_req_header : string <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> assoc_resp_header : string <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> dest_status : unit <span class="keywordsign">-></span> string * int * string<br> <span class="keyword">method</span> effective_request_uri : string<br> <span class="keyword">method</span> empty_path_replacement : string<br> <span class="keyword">method</span> get_host : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> get_path : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> get_port : unit <span class="keywordsign">-></span> int<br> <span class="keyword">method</span> get_reconnect_mode :<br> <span class="constructor">Http_client</span>.http_call <span class="constructor">Http_client</span>.how_to_reconnect<br> <span class="keyword">method</span> get_redirect_mode :<br> <span class="constructor">Http_client</span>.http_call <span class="constructor">Http_client</span>.how_to_redirect<br> <span class="keyword">method</span> get_req_body : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> get_req_header : unit <span class="keywordsign">-></span> (string * string) list<br> <span class="keyword">method</span> get_req_method : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> get_resp_body : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> get_resp_header : unit <span class="keywordsign">-></span> (string * string) list<br> <span class="keyword">method</span> get_uri : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> has_req_body : bool<br> <span class="keyword">method</span> has_resp_body : bool<br> <span class="keyword">method</span> is_idempotent : bool<br> <span class="keyword">method</span> is_proxy_allowed : unit <span class="keywordsign">-></span> bool<br> <span class="keyword">method</span> is_served : bool<br> <span class="keyword">method</span> no_proxy : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> private_api : <span class="constructor">Http_client</span>.private_api<br> <span class="keyword">method</span> proxy_enabled : bool<br> <span class="keyword">method</span> request_body : <span class="constructor">Netmime</span>.mime_body<br> <span class="keyword">method</span> request_header : <span class="constructor">Http_client</span>.header_kind <span class="keywordsign">-></span> <span class="constructor">Netmime</span>.mime_header<br> <span class="keyword">method</span> request_method : string<br> <span class="keyword">method</span> request_uri : string<br> <span class="keyword">method</span> response_body : <span class="constructor">Netmime</span>.mime_body<br> <span class="keyword">method</span> response_body_storage : <span class="constructor">Http_client</span>.response_body_storage<br> <span class="keyword">method</span> response_header : <span class="constructor">Netmime</span>.mime_header<br> <span class="keyword">method</span> response_protocol : string<br> <span class="keyword">method</span> response_status : <span class="constructor">Nethttp</span>.http_status<br> <span class="keyword">method</span> response_status_code : int<br> <span class="keyword">method</span> response_status_text : string<br> <span class="keyword">method</span> same_call : unit <span class="keywordsign">-></span> <span class="constructor">Http_client</span>.http_call<br> <span class="keyword">method</span> set_proxy_enabled : bool <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_reconnect_mode :<br> <span class="constructor">Http_client</span>.http_call <span class="constructor">Http_client</span>.how_to_reconnect <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_redirect_mode :<br> <span class="constructor">Http_client</span>.http_call <span class="constructor">Http_client</span>.how_to_redirect <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_req_header : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_request_body : <span class="constructor">Netmime</span>.mime_body <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_request_header : <span class="constructor">Netmime</span>.mime_header <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_request_uri : string <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_response_body_storage :<br> <span class="constructor">Http_client</span>.response_body_storage <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> status : <span class="constructor">Http_client</span>.status<br> <span class="keyword">end</span><br> <span class="keyword">class</span> <span class="keyword">virtual</span> generic_call :<br> <span class="keyword">object</span><br> <span class="keyword">method</span> assoc_multi_req_header : string <span class="keywordsign">-></span> string list<br> <span class="keyword">method</span> assoc_multi_resp_header : string <span class="keywordsign">-></span> string list<br> <span class="keyword">method</span> assoc_req_header : string <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> assoc_resp_header : string <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> <span class="keyword">private</span> <span class="keyword">virtual</span> def_empty_path_replacement : string<br> <span class="keyword">method</span> <span class="keyword">private</span> <span class="keyword">virtual</span> def_has_req_body : bool<br> <span class="keyword">method</span> <span class="keyword">private</span> <span class="keyword">virtual</span> def_has_resp_body : bool<br> <span class="keyword">method</span> <span class="keyword">private</span> <span class="keyword">virtual</span> def_is_idempotent : bool<br> <span class="keyword">method</span> <span class="keyword">private</span> <span class="keyword">virtual</span> def_request_method : string<br> <span class="keyword">method</span> dest_status : unit <span class="keywordsign">-></span> string * int * string<br> <span class="keyword">method</span> effective_request_uri : string<br> <span class="keyword">method</span> empty_path_replacement : string<br> <span class="keyword">method</span> <span class="keyword">private</span> <span class="keyword">virtual</span> fixup_request : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> get_host : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> get_path : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> get_port : unit <span class="keywordsign">-></span> int<br> <span class="keyword">method</span> get_reconnect_mode : http_call how_to_reconnect<br> <span class="keyword">method</span> get_redirect_mode : http_call how_to_redirect<br> <span class="keyword">method</span> get_req_body : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> get_req_header : unit <span class="keywordsign">-></span> (string * string) list<br> <span class="keyword">method</span> get_req_method : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> get_resp_body : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> get_resp_header : unit <span class="keywordsign">-></span> (string * string) list<br> <span class="keyword">method</span> get_uri : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> has_req_body : bool<br> <span class="keyword">method</span> has_resp_body : bool<br> <span class="keyword">method</span> is_idempotent : bool<br> <span class="keyword">method</span> is_proxy_allowed : unit <span class="keywordsign">-></span> bool<br> <span class="keyword">method</span> is_served : bool<br> <span class="keyword">method</span> no_proxy : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> private_api : private_api<br> <span class="keyword">method</span> proxy_enabled : bool<br> <span class="keyword">method</span> request_body : <span class="constructor">Netmime</span>.mime_body<br> <span class="keyword">method</span> request_header : header_kind <span class="keywordsign">-></span> <span class="constructor">Netmime</span>.mime_header<br> <span class="keyword">method</span> request_method : string<br> <span class="keyword">method</span> request_uri : string<br> <span class="keyword">method</span> response_body : <span class="constructor">Netmime</span>.mime_body<br> <span class="keyword">method</span> response_body_storage : response_body_storage<br> <span class="keyword">method</span> response_header : <span class="constructor">Netmime</span>.mime_header<br> <span class="keyword">method</span> response_protocol : string<br> <span class="keyword">method</span> response_status : <span class="constructor">Nethttp</span>.http_status<br> <span class="keyword">method</span> response_status_code : int<br> <span class="keyword">method</span> response_status_text : string<br> <span class="keyword">method</span> same_call : unit <span class="keywordsign">-></span> http_call<br> <span class="keyword">method</span> set_proxy_enabled : bool <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_reconnect_mode : http_call how_to_reconnect <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_redirect_mode : http_call how_to_redirect <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_req_header : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_request_body : <span class="constructor">Netmime</span>.mime_body <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_request_header : <span class="constructor">Netmime</span>.mime_header <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_request_uri : string <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_response_body_storage : response_body_storage <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> status : status<br> <span class="keyword">end</span><br> <span class="keyword">class</span> get_call : http_call<br> <span class="keyword">class</span> trace_call : http_call<br> <span class="keyword">class</span> options_call : http_call<br> <span class="keyword">class</span> head_call : http_call<br> <span class="keyword">class</span> post_call : http_call<br> <span class="keyword">class</span> put_call : http_call<br> <span class="keyword">class</span> delete_call : http_call<br> <span class="keyword">class</span> get : string <span class="keywordsign">-></span> http_call<br> <span class="keyword">class</span> trace : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> http_call<br> <span class="keyword">class</span> options : string <span class="keywordsign">-></span> http_call<br> <span class="keyword">class</span> head : string <span class="keywordsign">-></span> http_call<br> <span class="keyword">class</span> post : string <span class="keywordsign">-></span> (string * string) list <span class="keywordsign">-></span> http_call<br> <span class="keyword">class</span> post_raw : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> http_call<br> <span class="keyword">class</span> put : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> http_call<br> <span class="keyword">class</span> delete : string <span class="keywordsign">-></span> http_call<br> <span class="keyword">class</span> <span class="keyword">type</span> key =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> domain : string list<br> <span class="keyword">method</span> password : string<br> <span class="keyword">method</span> realm : string<br> <span class="keyword">method</span> user : string<br> <span class="keyword">end</span><br> <span class="keyword">class</span> <span class="keyword">type</span> key_handler =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> inquire_key :<br> domain:string list <span class="keywordsign">-></span><br> realms:string list <span class="keywordsign">-></span> auth:string <span class="keywordsign">-></span> <span class="constructor">Http_client</span>.key<br> <span class="keyword">method</span> invalidate_key : <span class="constructor">Http_client</span>.key <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">class</span> key_ring :<br> ?uplink:<span class="keywordsign">#</span><span class="constructor">Http_client</span>.key_handler <span class="keywordsign">-></span><br> unit <span class="keywordsign">-></span><br> <span class="keyword">object</span><br> <span class="keyword">method</span> add_key : <span class="constructor">Http_client</span>.key <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> clear : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> inquire_key :<br> domain:string list <span class="keywordsign">-></span> realms:string list <span class="keywordsign">-></span> auth:string <span class="keywordsign">-></span> key<br> <span class="keyword">method</span> invalidate_key : key <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> keys : <span class="constructor">Http_client</span>.key list<br> <span class="keyword">end</span><br> <span class="keyword">class</span> <span class="keyword">type</span> auth_session =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> auth_domain : string list<br> <span class="keyword">method</span> auth_in_advance : bool<br> <span class="keyword">method</span> auth_realm : string<br> <span class="keyword">method</span> auth_scheme : string<br> <span class="keyword">method</span> auth_user : string<br> <span class="keyword">method</span> authenticate : <span class="constructor">Http_client</span>.http_call <span class="keywordsign">-></span> (string * string) list<br> <span class="keyword">method</span> invalidate : <span class="constructor">Http_client</span>.http_call <span class="keywordsign">-></span> bool<br> <span class="keyword">end</span><br> <span class="keyword">class</span> <span class="keyword">type</span> auth_handler =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> create_session :<br> <span class="constructor">Http_client</span>.http_call <span class="keywordsign">-></span> <span class="constructor">Http_client</span>.auth_session option<br> <span class="keyword">end</span><br> <span class="keyword">class</span> basic_auth_handler :<br> ?enable_auth_in_advance:bool <span class="keywordsign">-></span> <span class="keywordsign">#</span><span class="constructor">Http_client</span>.key_handler <span class="keywordsign">-></span> auth_handler<br> <span class="keyword">class</span> digest_auth_handler :<br> ?enable_auth_in_advance:bool <span class="keywordsign">-></span> <span class="keywordsign">#</span><span class="constructor">Http_client</span>.key_handler <span class="keywordsign">-></span> auth_handler<br> <span class="keyword">class</span> basic_auth_method :<br> <span class="keyword">object</span><br> <span class="keyword">method</span> as_auth_handler : <span class="constructor">Http_client</span>.auth_handler<br> <span class="keyword">method</span> name : string<br> <span class="keyword">method</span> set_realm : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">class</span> digest_auth_method : basic_auth_method<br> <span class="keyword">type</span> connection_cache<br> <span class="keyword">val</span> close_connection_cache : <span class="constructor">Http_client</span>.connection_cache <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> create_restrictive_cache : unit <span class="keywordsign">-></span> <span class="constructor">Http_client</span>.connection_cache<br> <span class="keyword">val</span> create_aggressive_cache : unit <span class="keywordsign">-></span> <span class="constructor">Http_client</span>.connection_cache<br> <span class="keyword">class</span> pipeline :<br> <span class="keyword">object</span><br> <span class="keyword">method</span> add : <span class="constructor">Http_client</span>.http_call <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> add_auth_handler : <span class="constructor">Http_client</span>.auth_handler <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> add_authentication_method :<br> <span class="constructor">Http_client</span>.basic_auth_method <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> add_with_callback :<br> <span class="constructor">Http_client</span>.http_call <span class="keywordsign">-></span> (<span class="constructor">Http_client</span>.http_call <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> avoid_proxy_for : string list <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> cnt_crashed_connections : int<br> <span class="keyword">method</span> cnt_failed_connections : int<br> <span class="keyword">method</span> cnt_new_connections : int<br> <span class="keyword">method</span> cnt_server_eof_connections : int<br> <span class="keyword">method</span> cnt_successful_connections : int<br> <span class="keyword">method</span> cnt_timed_out_connections : int<br> <span class="keyword">method</span> connection_cache : <span class="constructor">Http_client</span>.connection_cache<br> <span class="keyword">method</span> connections : (string * int * int) list<br> <span class="keyword">method</span> event_system : <span class="constructor">Unixqueue</span>.event_system<br> <span class="keyword">method</span> get_options : <span class="constructor">Http_client</span>.http_options<br> <span class="keyword">method</span> number_of_open_connections : int<br> <span class="keyword">method</span> number_of_open_messages : int<br> <span class="keyword">method</span> reset : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> reset_counters : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> run : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_connection_cache : <span class="constructor">Http_client</span>.connection_cache <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_event_system : <span class="constructor">Unixqueue</span>.event_system <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_options : <span class="constructor">Http_client</span>.http_options <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_proxy : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_proxy_auth : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> set_proxy_from_environment : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Convenience</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> http_trials : int <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> http_user : string <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> http_password : string <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> http_get_message : string <span class="keywordsign">-></span> <span class="constructor">Http_client</span>.http_call<br> <span class="keyword">val</span> http_head_message : string <span class="keywordsign">-></span> <span class="constructor">Http_client</span>.http_call<br> <span class="keyword">val</span> http_post_message :<br> string <span class="keywordsign">-></span> (string * string) list <span class="keywordsign">-></span> <span class="constructor">Http_client</span>.http_call<br> <span class="keyword">val</span> http_put_message : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Http_client</span>.http_call<br> <span class="keyword">val</span> http_delete_message : string <span class="keywordsign">-></span> <span class="constructor">Http_client</span>.http_call<br> <span class="keyword">val</span> http_get : string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> http_post : string <span class="keywordsign">-></span> (string * string) list <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> http_put : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> http_delete : string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> http_verbose : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">val</span> init_mt :<br> create_lock_unlock_pair:(unit <span class="keywordsign">-></span> (unit <span class="keywordsign">-></span> unit) * (unit <span class="keywordsign">-></span> unit)) <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span></code></body></html>