OCamlnet和Ripple API

时间:2013-11-24 21:42:19

标签: json http post ocaml ripple

我正在尝试编写一些代码来从涟漪API(https://ripple.com/wiki/JSON_Messages)中检索我的帐户状态。我目前使用的代码:

    #require "netclient";;
    open Http_client.Convenience;;

    let account_info =
      [
        ("command","account_info");
        ("account","my_account_key")
      ]
    ;;

    let response = http_post_message "http://s1.ripple.com:51234" account_info;;

我将请求发送给http://s1.ripple.com:51234,我收到错误请求错误。注意:我已尝试将方法和命令作为参数以及http_post和http_post_message方法。

    # response#status;;
    - : Http_client.status = `Client_error
    # response#response_status;;
    - : Nethttp.http_status = `Bad_request

我必须对我申请数据的方式做出根本性的错误,但我没有足够的经验来解决这个问题,知道我哪里出错了。我想也许我应该使用Http_client.post_raw方法,但是我的顶层无法识别这种方法。我不知道如何纠正我的错误。

    # Http_client.post_raw;;
    Error: Unbound value Http_client.post_raw        

提前致谢。

2 个答案:

答案 0 :(得分:2)

首先使用HTTP API,最重要的是使用curl命令行实用程序测试API。获得预期的响应后 - 实现代码以使用相同的标头发送相同的请求。请查看curl -v以及http库的调试工具。

答案 1 :(得分:1)

您的服务器可能有问题:

$ curl -v http://s1.ripple.com:51234/
* About to connect() to s1.ripple.com port 51234 (#0)
*   Trying 54.200.86.207...
* Adding handle: conn: 0x7f92a1808c00
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7f92a1808c00) send_pipe: 1, recv_pipe: 0
* Connected to s1.ripple.com (54.200.86.207) port 51234 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.32.0
> Host: s1.ripple.com:51234
> Accept: */*
>
* Empty reply from server
* Connection #0 to host s1.ripple.com left intact
curl: (52) Empty reply from server

我经常使用OcamlNet,如果我可以建议你:在之前用终端测试你的网址。