close_in inchan; (* close also outchan, same fd *)
Buffer.contents buf
-let get_iter callback url =
+let get_iter ?(head_callback = fun _ _ -> ()) callback url =
let (inchan, outchan) = submit_request `GET url in
let buf = String.create tcp_bufsiz in
let (_, status) = Http_parser.parse_response_fst_line inchan in
(match code_of_status status with
| 200 -> ()
| code -> raise (Http_error (code, "")));
- ignore (Http_parser.parse_headers inchan);
+ let headers = Http_parser.parse_headers inchan in
+ head_callback status headers;
(try
while true do
match input inchan buf 0 tcp_bufsiz with
with End_of_file -> ());
close_in inchan (* close also outchan, same fd *)
-let get url =
+let get ?head_callback url =
let buf = Buffer.create 10240 in
- get_iter (Buffer.add_string buf) url;
+ get_iter ?head_callback (Buffer.add_string buf) url;
Buffer.contents buf