From 9eed388bf3c07dc0ea24fb0637b4964c8e387437 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 22 Dec 2025 16:45:43 +0800
Subject: [PATCH] fix(symbols): 修复K线数据获取逻辑
---
src/main/java/com/xcong/excoin/modules/newPrice/utils/RequestBuilder.java | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 150 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/newPrice/utils/RequestBuilder.java b/src/main/java/com/xcong/excoin/modules/newPrice/utils/RequestBuilder.java
new file mode 100644
index 0000000..a36cf50
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/newPrice/utils/RequestBuilder.java
@@ -0,0 +1,150 @@
+package com.xcong.excoin.modules.newPrice.utils;
+
+
+import com.xcong.excoin.common.exception.FebsException;
+import com.xcong.excoin.modules.newPrice.enums.HttpMethod;
+import okhttp3.MediaType;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+
+public final class RequestBuilder {
+ private static final MediaType JSON_TYPE = MediaType.parse("application/json; charset=utf-8");
+
+ private RequestBuilder() {
+ }
+
+ public static Request.Builder buildPublicRequest(String fullUrl, HttpMethod httpMethod, boolean issimulated) {
+ try {
+ final Request.Builder result;
+ switch (httpMethod) {
+ case POST:
+ OkHttpUtils builder = OkHttpUtils.builder();
+ if(issimulated){
+ builder.addHeader("x-simulated-trading","1");
+ }
+ result = builder
+ .url(fullUrl)
+ .post(true)
+ .sync();
+ break;
+ case GET:
+ OkHttpUtils builder1 = OkHttpUtils.builder();
+ if(issimulated){
+ builder1.addHeader("x-simulated-trading","1");
+ }
+ result = builder1
+ .url(fullUrl)
+ .addHeader("Content-Type", "application/x-www-form-urlencoded")
+ .get()
+ .sync();
+ break;
+ case PUT:
+ OkHttpUtils builder2 = OkHttpUtils.builder();
+ if(issimulated){
+ builder2.addHeader("x-simulated-trading","1");
+ }
+ result = builder2
+ .url(fullUrl)
+ .addHeader("Content-Type", "application/x-www-form-urlencoded")
+ .post(false)
+ .sync();
+ break;
+ case DELETE:
+ OkHttpUtils builder3 = OkHttpUtils.builder();
+ if(issimulated){
+ builder3.addHeader("x-simulated-trading","1");
+ }
+ result = builder3
+ .url(fullUrl)
+ .post(false)
+ .sync();
+ break;
+ default:
+ throw new FebsException("Invalid HTTP method: " + httpMethod);
+ }
+ return result;
+ } catch (IllegalArgumentException e) {
+ throw new FebsException("Invalid URL: " + e.getMessage());
+ }
+ }
+
+ public static Request buildApiKeyRequest(String fullUrl,String body,String passphrase,String sign,String timeStamp, HttpMethod httpMethod, String apiKey,boolean issimulate) {
+ try {
+ final Request request;
+ switch (httpMethod) {
+ case POST:
+ Request.Builder builder = new Request.Builder();
+ if(issimulate){
+ builder.addHeader("x-simulated-trading","1");
+ }
+ request = builder
+ .url(fullUrl)
+ .post(RequestBody.create(JSON_TYPE, body))
+ .addHeader("OK-ACCESS-KEY", apiKey)
+ .addHeader("OK-ACCESS-SIGN", sign)
+ .addHeader("OK-ACCESS-TIMESTAMP", timeStamp)
+ .addHeader("OK-ACCESS-PASSPHRASE", passphrase)
+ .build();
+ break;
+ case GET:
+ Request.Builder builder1 = new Request.Builder();
+ if(issimulate){
+ builder1.addHeader("x-simulated-trading","1");
+ }
+ request = builder1
+ .url(fullUrl)
+ .get()
+ .addHeader("Content-Type", "application/x-www-form-urlencoded")
+ .addHeader("OK-ACCESS-KEY", apiKey)
+ .addHeader("OK-ACCESS-KEY", apiKey)
+ .addHeader("OK-ACCESS-SIGN", sign)
+ .addHeader("OK-ACCESS-TIMESTAMP", timeStamp)
+ .addHeader("OK-ACCESS-PASSPHRASE", passphrase)
+ .build();
+ break;
+ case PUT:
+ Request.Builder builder2 = new Request.Builder();
+ if(issimulate){
+ builder2.addHeader("x-simulated-trading","1");
+ }
+ request = builder2
+ .url(fullUrl)
+ .put(RequestBody.create(JSON_TYPE, ""))
+ .addHeader("Content-Type", "application/x-www-form-urlencoded")
+ .addHeader("OK-ACCESS-KEY", apiKey)
+ .addHeader("OK-ACCESS-KEY", apiKey)
+ .addHeader("OK-ACCESS-SIGN", sign)
+ .addHeader("OK-ACCESS-TIMESTAMP", timeStamp)
+ .addHeader("OK-ACCESS-PASSPHRASE", passphrase)
+ .build();
+ break;
+ case DELETE:
+ Request.Builder builder3 = new Request.Builder();
+ if(issimulate){
+ builder3.addHeader("x-simulated-trading","1");
+ }
+ request = builder3
+ .url(fullUrl)
+ .delete()
+ .addHeader("Content-Type", "application/x-www-form-urlencoded")
+ .addHeader("OK-ACCESS-KEY", apiKey)
+ .addHeader("OK-ACCESS-KEY", apiKey)
+ .addHeader("OK-ACCESS-SIGN", sign)
+ .addHeader("OK-ACCESS-TIMESTAMP", timeStamp)
+ .addHeader("OK-ACCESS-PASSPHRASE", passphrase)
+ .build();
+ break;
+ default:
+ throw new FebsException("Invalid HTTP method: " + httpMethod);
+ }
+ return request;
+ } catch (IllegalArgumentException e) {
+ throw new FebsException("Invalid URL: " + e.getMessage());
+ }
+ }
+
+ public static Request buildWebsocketRequest(String fullUrl) {
+ return new Request.Builder().url(fullUrl).build();
+ }
+
+}
--
Gitblit v1.9.1