let post url ?form headers =
  let hv = hv_empty () in
  (match form with
     | None -> ()
     | Some xs -> List.iter (fun (k, v) -> hv_set hv k (sv_of_string v)) xs);
  let args =
    sv_of_string url :: hashref hv ::
      List.fold_right (fun (k, v) rest ->
                         sv_of_string k :: sv_of_string v :: rest)
      headers [] in
  new http_request (call ~fn:"POST" args)