如何通过 HTTPS将Cohttp库用于URL?GET
这是我尝试使用的代码:
open Lwt
open Cohttp
open Cohttp_lwt_unix
let url = "https://google.com"
let do_request =
Client.get (Uri.of_string url) >>= fun (resp, body) ->
body |> Cohttp_lwt.Body.to_string
let run () =
let body = Lwt_main.run do_request in
print_endline ("Received body\n" ^ body)
当我运行它时,我收到以下错误:
Fatal error: exception (Failure "Ssl not available")
使用 Cohttp 时如何启用 SSL ?
另外,作为一个额外的问题,我应该如何在不求助于这里询问的情况下解决这个问题?我错过了某种 Cohttp 文档吗?
@antron 问了下面的问题,“你安装了ssl
库吗?”
我确实安装了ssl
库:
$ opam list ssl
# Available packages for 4.05.0:
ssl 0.5.3 Bindings for OpenSSL
但是,我不确定这是否相关,但我的cohttp
包裹没有显示depends
on ssl
:
$ opam info --field depends cohttp
base-bytes & jbuilder >= 1.0+beta10 & re & uri >= 1.9.0 & fieldslib & sexplib & ppx_fields_conv >= v0.9.0 & ppx_sexp_conv >= v0.9.0 & stringext & base64 >= 2.0.0 & magic-mime & fmt & logs & jsonm
我在 Arch Linux 上运行 OCaml 版本 4.05.0,通过opam switch
.
以防万一,这是jbuild
我正在使用的文件:
(jbuild_version 1)
(executables
((names (main))
(libraries (cohttp cohttp-lwt-unix core lwt))))
(install
((section bin)
(files ((main.exe as my_example_prog)))))
我正在运行jbuilder
如下。编译时没有错误:
$ jbuilder build @install
我正在运行如下my_example_prog
可执行文件:
$ _build/install/default/bin/my_example_prog
Fatal error: exception (Failure "Ssl not available")
你可以在这里找到我正在使用的完整 OCaml 项目。