2017-07-27 45 views
1

我被Bitfinex REST API困擾了好幾天,特別是私人端點place a new order什麼是Bitfinex API訂購新的有效JSON?

我能夠發送有效的請求到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

你可以嘗試打印響應消息來檢查錯誤:

.... 
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); 
}