为了账号安全,请及时绑定邮箱和手机立即绑定

连接到加密交换 api。使用“POST”或“DELETE”方法“签名并发送”消息时出错?

连接到加密交换 api。使用“POST”或“DELETE”方法“签名并发送”消息时出错?

30秒到达战场 2022-12-28 10:44:22
我在编码方面还很陌生,希望能得到解决问题的建议。我正在编写一个 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”的输出和我尝试关闭它时的错误消息。线程“main”中的异常 java.io.IOException:服务器返回 HTTP 响应代码:403 URL:https ://api.exchange.trade.io/api/v1/order/-72057593948251267?ts= 1559338452695 at java.base /sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1913)
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

所以 - 403 意味着您已正确验证并被系统识别 - 但系统确定您缺少权限。从本质上讲,它发现您是用户 - 但表示您无权访问您想做的事情。有关状态代码的更多信息,请访问https://httpstatuses.com/

之前使用过这些 API 密钥 - 我想知道您是否没有设置 API 密钥以允许您执行给您 403 的操作。

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

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

欢迎来到 Stack Overflow :-) 。


查看完整回答
反对 回复 2022-12-28
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信