我已经被 Bitfinex REST API 困扰了好几天了,特别是 place a new order 的私有(private)端点.
我能够向 API 的其他部分发送有效请求,例如帐户信息或 key 信息等。但在尝试下任何类型的订单时,我不断收到 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
为我工作的唯一方法。
我是否遗漏了一些非常明显的东西?
最佳答案
您可以尝试打印响应消息来检查错误:
....
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);
}
关于java - Bitfinex API 新订单的有效 JSON 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45347001/