我被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
为我工作的唯一方法。
我错过了一些非常明显的东西吗?
答案 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);
}