Я пытаюсь использовать пакет cohttp OCaml для отправки запроса POST с использованием метода Client.post. Я рассмотрел пример в ocaml-cohttp/lib_test/test_net_lwt_client_and_server.ml, чтобы использовать этот метод, вот фрагмент кода из примера, который использует эту функцию.Использование метода OCaml cohttp Client.post
Client.post ~body:(Cohttp_lwt_body.of_string "barfoo") url
Я использую функцию точно таким же образом в моем собственном коде:
Client.post ~body:(Cohttp_lwt_body.of_string bodyString) (Uri.of_string stringURI) >>= function
| Some (_, body) -> Cohttp_lwt_body.string_of_body body
| None -> return ""
Но я получаю сообщение об ошибке:
Error: This pattern matches values of type 'a option
but a pattern was expected which matches values of type
Cohttp.Response.t * Cohttp_lwt_body.t
Я смотрел на https://github.com/mirage/ocaml-cohttp/issues/64 который предложил изменить метку ~body
на ?body
, но затем я получил другую ошибку:
Error: This expression has type Cohttp_lwt_body.t
but an expression was expected of type Cohttp_lwt_body.t option
Не могли бы вы объяснить, как правильно использовать эту функцию?