gpt4 book ai didi

java - 连接到加密货币交换 API。使用方法 "sign & send"或 "POST"时出现 "DELETE"消息时出错?

转载 作者:太空宇宙 更新时间:2023-11-04 09:36:57 25 4
gpt4 key购买 nike

我在编码方面还很陌生,希望能得到如何解决我的问题的建议。我正在编写一个java代码来连接到trade.io API,但我不知道如何使用“POST”和“DELETE”向交易所提交正确的加密消息。

到目前为止,我设法解决了如何使用“GET”接收信息,但其他方法没有成功。

这是我到目前为止所写的内容:

/*
* CancelOrder cancels an existing order ==> This doesn't work!
*/
public String CancelOrder(String orderId) throws MalformedURLException,
IOException {

return signAndSend("/order/" + orderId, "DELETE");
}


/*
* Reads the open orders in the account ==> This works!
*/
public String getOpenOrders(String symbol) throws MalformedURLException,
IOException {
return signAndSend("/openOrders/" + symbol, "GET");
}


/*
* Signs and Sends signature. This method is called when signature is
needed.
*/
private String signAndSend(String url, String method) throws
MalformedURLException, IOException {

String nonce = String.valueOf(System.currentTimeMillis());
String baseUrl = UrlTradeio.urlV1;
String ts = "?ts=" + nonce;

String sign = hmac512Digest(ts, TRADEIO_SECRET_KEY).toUpperCase();

HttpURLConnection con = (HttpURLConnection) new URL(baseUrl + url + ts).openConnection();
con.setRequestProperty("Sign", sign);
con.setRequestProperty("Key", TRADEIO_API_KEY);
con.setRequestMethod(method);
con.connect();

InputStream response = con.getInputStream();
//
try (Scanner scanner = new Scanner(response)) {

String responseBody = scanner.next();

return responseBody;
}

}

交易所在此处提供了非常详尽的 C# 示例:

https://github.com/tradeio/api-csharpclient/blob/master/Tradeio.Client/TradeioApi.cs

这是“getOpenOrders”的输出以及我尝试关闭它时的错误消息。

ktos_eth open orders are: {"code":0,"timestamp":1559338453064,"orders":[{"orderId":"-72057593948251267","total":"0.0","orderType":"limit","commission":"0.0","createdAt":"2019-01-23T17:36:55.8633777Z","unitsFilled":"0.0","isPending":true,"status":"Working","type":"sell","requestedAmount":"75.0","baseAmount":"0.0","quoteAmount":"0.0","price":"0.00014000","isLimit":true,"loanRate":"0.0","rateStop":"0.0","instrument":"ktos_eth","requestedPrice":"0.00014000","remainingAmount":"75.0"}]}

线程“main”中出现异常 java.io.IOException:服务器返回 HTTP 响应代码:403,URL:https://api.exchange.trade.io/api/v1/order/-72057593948251267?ts=1559338452695 在 java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1913)

提前感谢您的调查

干杯亚历克斯

最佳答案

所以 - 403 意味着您已正确进行身份验证并被系统识别 - 但系统确定您缺乏权限。本质上,它找到了您作为用户 - 但表示您无权访问您想做的事情。有关状态代码的更多信息,请参见此处 https://httpstatuses.com/

之前使用过这些 API key - 我想知道您是否没有设置 API key 来允许您执行导致 403 错误的操作。

我建议检查您在加密站点上创建的 API key 。确保您不仅拥有 key ,而且已启用该 key 以用于您想要的操作。看起来 trade.io 称它们为“权限”,可以在此处查看 https://trade.io/en/api .

我的猜测是您只为该 key 启用了“读取访问”,而不是“交易”。

欢迎来到 Stack Overflow :-) 。

关于java - 连接到加密货币交换 API。使用方法 "sign & send"或 "POST"时出现 "DELETE"消息时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56402102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com