If Unix.open_process_in with curl or wget is not sufficient...
high level details like maintaining cookies across calls (for session continuity and logins):
let s = Http_client.Convenience.http_get "http://www.ibm.com" in output_string stdout s
Compile with
ocamlfind ocamlc -package netclient -linkpkg file.ml
Example of tools using Netclient:
(WWW:Mechanize is already wrapped in perl4caml). Allows to easily navigate websites (click links, push buttons, fill in forms and so on).