zj
2025-10-17 bbc4713b23778aebc1eb3d46cb04d539179d883d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.yami.trading.huobi.websocket.service.huobi.connection;
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yami.trading.huobi.websocket.constant.EtfResult;
import com.yami.trading.huobi.websocket.constant.Options;
import com.yami.trading.huobi.websocket.exception.SDKException;
import com.yami.trading.huobi.websocket.service.huobi.signature.ApiSignature;
import com.yami.trading.huobi.websocket.service.huobi.signature.ApiSignatureED25519;
import com.yami.trading.huobi.websocket.service.huobi.signature.UrlParamsBuilder;
import com.yami.trading.huobi.websocket.utils.ConnectionFactory;
import okhttp3.Request;
 
import java.net.MalformedURLException;
import java.net.URL;
 
public class HuobiRestConnection25519 extends HuobiRestConnection {
 
    public HuobiRestConnection25519(Options options) {
        super(options);
    }
 
    @Override
    public JSONObject executeGetWithSignature(String path, UrlParamsBuilder paramsBuilder) {
        Options options = this.getOptions();
        System.out.println("API Key: " + options.getApiKey());
        System.out.println("Secret Key: " + options.getSecretKey());
 
        // 创建 ApiSignatureED25519 实例
        ApiSignatureED25519 apiSignature = new ApiSignatureED25519();
        try {
            apiSignature.ApiSignature(options.getApiKey(), options.getSecretKey()); // 确保顺序正确
        } catch (Exception e) {
            e.printStackTrace();
            throw new SDKException(SDKException.KEY_MISSING, "Invalid API key or secret key: " + e.getMessage());
        }
 
        String requestUrl = options.getRestHost() + path;
        apiSignature.createSignature("GET", host, path, paramsBuilder, options.getApiKey());
        requestUrl += paramsBuilder.buildUrl();
        System.out.println(requestUrl);
 
        Request executeRequest = new Request.Builder()
                .url(requestUrl)
                .addHeader("Content-Type", "application/x-www-form-urlencoded")
                .addHeader("x-connecting-ip", "192.2.12.19")
                .addHeader("HB-REAL-IP", "192.2.12.19")
                .addHeader("X-Forwarded-For", "192.2.12.19")
                .addHeader("X-Real-IP", "192.2.12.19")
                .build();
 
        String resp = ConnectionFactory.execute(executeRequest);
        return checkAndGetResponse(resp);
    }
 
    @Override
    public JSONObject executePostWithSignature(String path, UrlParamsBuilder paramsBuilder) {
        Options options = this.getOptions();
        ApiSignatureED25519 apiSignature = new ApiSignatureED25519();
        try {
            apiSignature.ApiSignature( options.getApiKey(),options.getSecretKey()); // 确保顺序正确
        } catch (Exception e) {
            throw new SDKException(SDKException.KEY_MISSING, "Invalid API key or secret key: " + e.getMessage());
        }
 
        String requestUrl = options.getRestHost() + path;
        apiSignature.createSignature("POST", host, path, paramsBuilder, options.getApiKey());
        requestUrl += paramsBuilder.buildUrl();
 
        Request executeRequest = new Request.Builder()
                .url(requestUrl)
                .post(paramsBuilder.buildPostBody())
                .addHeader("Content-Type", "application/json")
                .build();
 
        String resp = ConnectionFactory.execute(executeRequest);
        return checkAndGetResponse(resp);
    }
 
}