什么是Bitfinex API新订单的有效JSON?

时间:2017-07-27 09:42:57

标签: java json

我被Bitfinex REST API困扰了好几天,特别是place a new order的私有端点。

我能够向API的其他部分发送有效请求,例如帐户信息或密钥信息等。但在尝试下订单时,我一直收到HTTP 400错误。

我现在几乎整个API都在工作,除了一些选项。因此,使用这些标准创建的JsonObject有效:

JsonObject value = factory.createObjectBuilder()
    .add("request", urlPath)
    .add("nonce", Long.toString(this.getNonce()))
    .add("symbol", this.instrument)
    .add("amount", new BigDecimal(0.1).toString())
    .add("price", new BigDecimal(0.14).toString())
    .add("exchange","bitfinex")
    .add("side", "sell")
    .add("type","exchange limit")
    .build();

但是以下内容返回HTTP 400:

JsonObject value = factory.createObjectBuilder()
    .add("request", urlPath)
    .add("nonce", Long.toString(this.getNonce()))
    .add("symbol", this.instrument)
    .add("amount", new BigDecimal(0.1).toString())
    .add("price", new BigDecimal(0.14).toString())
    .add("exchange","bitfinex")
    .add("side", "sell")
    .add("type","exchange limit")
    .add("is_hidden","false") // .add("is_hidden",false) does not work either
    .build();

使用以下代码,我无法使用以下任何参数:

.add("is_hidden","false")
.add("is_postonly","true")
.add("ocoorder","false")
.add("buy_price_oco","0")
.add("sell_price_oco","0")

Bitfinex API文档非常令人沮丧。 (他们自己的“尝试它”示例只是给出了HTTP 403错误)。我找到了一个真正的helpful video tutorial from some time back,它显示了以前版本的文档的屏幕截图,它实际上提供了有效JSON的示例。阅读那些像素化静止图像是我最终能够/v1/order/new为我工作的唯一方法。

我错过了一些非常明显的东西吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试打印响应消息以检查错误:

....
HttpResponse response = client.execute(request);
System.out.println(response.getStatusLine().toString());

BufferedReader rd = new BufferedReader(
  new InputStreamReader(response.getEntity().getContent()));

String line = "";
while ((line = rd.readLine()) != null) {
    System.out.println(line);
}