瀏覽代碼

特殊处理,代理设置

hl 1 年之前
父節點
當前提交
951cab7393
共有 2 個文件被更改,包括 31 次插入28 次删除
  1. 19 16
      exchanges/src/phemex_swap_rest.rs
  2. 12 12
      exchanges/tests/phemex_swap_test.rs

+ 19 - 16
exchanges/src/phemex_swap_rest.rs

@@ -12,14 +12,12 @@ use tracing::{error, info, trace};
 
 use crate::http_tool::RestTool;
 use crate::proxy;
-use crate::proxy::ParsingDetail;
 use crate::response_base::ResponseData;
 
 #[derive(Clone, Debug)]
 pub struct PhemexSwapRest {
     pub tag: String,
     base_url: String,
-    client: reqwest::Client,
     /*******参数*/
     //是否需要登录
     //登录所需参数
@@ -35,11 +33,11 @@ impl PhemexSwapRest {
     /*****************************************获取一个对象****************************************************/
     /*******************************************************************************************************/
 
-    pub fn new(is_colo: bool, is_proxy: bool, login_param: BTreeMap<String, String>) -> PhemexSwapRest
+    pub fn new(is_colo: bool, login_param: BTreeMap<String, String>) -> PhemexSwapRest
     {
-        return PhemexSwapRest::new_with_tag("default-PhemexSwapRest".to_string(), is_colo, is_proxy, login_param);
+        return PhemexSwapRest::new_with_tag("default-PhemexSwapRest".to_string(), is_colo, login_param);
     }
-    pub fn new_with_tag(tag: String, is_colo: bool, is_proxy: bool, login_param: BTreeMap<String, String>) -> PhemexSwapRest {
+    pub fn new_with_tag(tag: String, is_colo: bool, login_param: BTreeMap<String, String>) -> PhemexSwapRest {
         let base_url = if is_colo {
             let z = "https://api.phemex.com".to_string();
             info!("开启高速(未配置,走普通:{})通道",z);
@@ -50,17 +48,11 @@ impl PhemexSwapRest {
             z
         };
 
-        if is_proxy {
-            proxy::ParsingDetail::http_enable_proxy(Some("phemex"));
-        } else {
-            proxy::ParsingDetail::http_enable_proxy(None);
-        }
 
         /*****返回结构体*******/
         PhemexSwapRest {
             tag,
             base_url,
-            client: Client::new(),
             login_param,
             delays: vec![],
             max_delay: 0,
@@ -265,6 +257,7 @@ impl PhemexSwapRest {
             params.clone(),
             body.clone(),
             headers,
+            is_login,
         ).await;
 
         let time_array = chrono::Utc::now().timestamp_millis() - start_time;
@@ -306,7 +299,8 @@ impl PhemexSwapRest {
                        request_type: String,
                        params: String,
                        body: String,
-                       headers: HeaderMap) -> ResponseData {
+                       headers: HeaderMap,
+                       is_login: bool) -> ResponseData {
         /****请求接口与 地址*/
         let url = format!("{}{}", self.base_url.to_string(), request_path);
         let request_type = request_type.clone().to_uppercase();
@@ -323,16 +317,25 @@ impl PhemexSwapRest {
         trace!("headers-----:{:?}",headers.clone());
         trace!("request_type-----:{:?}",request_type.clone());
 
+
+        let client = if is_login {
+            proxy::ParsingDetail::http_enable_proxy(Some("phemex"));
+            Client::new()
+        } else {
+            proxy::ParsingDetail::http_enable_proxy(None);
+            Client::new()
+        };
         let request_builder = match request_type.as_str() {
-            "GET" => self.client.get(addrs_url.clone()).headers(headers),
-            "POST" => self.client.post(url.clone()).body(body).headers(headers),
-            "DELETE" => self.client.delete(addrs_url.clone()).headers(headers),
-            "PUT" => self.client.put(addrs_url.clone()).headers(headers),
+            "GET" => client.get(addrs_url.clone()).headers(headers),
+            "POST" => client.post(url.clone()).body(body).headers(headers),
+            "DELETE" => client.delete(addrs_url.clone()).headers(headers),
+            "PUT" => client.put(addrs_url.clone()).headers(headers),
             _ => {
                 panic!("{}", format!("错误的请求类型:{}", request_type.clone()))
             }
         };
 
+
         // 读取响应的内容
         let response = request_builder.send().await.unwrap();
         let is_success = response.status().is_success(); // 先检查状态码

+ 12 - 12
exchanges/tests/phemex_swap_test.rs

@@ -5,10 +5,9 @@ use std::sync::atomic::AtomicBool;
 use serde_json::json;
 use tokio::sync::Mutex;
 use tracing::trace;
+
 use exchanges::phemex_swap_rest::PhemexSwapRest;
 use exchanges::phemex_swap_ws::{PhemexSwapLogin, PhemexSwapSubscribeType, PhemexSwapWs, PhemexSwapWsType};
-use exchanges::proxy;
-use exchanges::proxy::ProxyResponseEnum::NO;
 use exchanges::response_base::ResponseData;
 
 const ACCESS_KEY: &str = "81afd14f-bc0a-4599-8ae6-8b4dc20e95a0";
@@ -109,7 +108,7 @@ fn get_ws(btree_map: Option<PhemexSwapLogin>, ws_type: PhemexSwapWsType) -> Phem
 async fn rest_get_server_test() {
     global::log_utils::init_log_with_trace();
 
-    let mut ret = get_rest(false);
+    let mut ret = get_rest();
     let req_data = ret.get_server().await;
     println!("Phemex--服务器时间--{:?}", req_data);
 }
@@ -119,11 +118,11 @@ async fn rest_get_server_test() {
 async fn rest_get_market_test() {
     global::log_utils::init_log_with_trace();
 
-    let mut ret = get_rest(false);
+    let mut ret = get_rest();
     let req_data = ret.get_market(json!({
 
     })).await;
-    // println!("Phemex--查詢合約基礎信息--{:?}", req_data);
+    println!("Phemex--查詢合約基礎信息--");
 }
 
 
@@ -132,7 +131,7 @@ async fn rest_get_market_test() {
 async fn rest_get_account_and_positions_test() {
     global::log_utils::init_log_with_trace();
 
-    let mut ret = get_rest(true);
+    let mut ret = get_rest();
     let req_data = ret.get_account_and_positions(
         json!({
             "currency":"USDT"
@@ -147,7 +146,7 @@ async fn rest_get_account_and_positions_test() {
 async fn rest_set_leverage_test() {
     global::log_utils::init_log_with_trace();
 
-    let mut ret = get_rest(true);
+    let mut ret = get_rest();
     let req_data = ret.set_leverage(json!({
         "symbol":"ZKUSDT",
         "leverageRr":"1"
@@ -161,7 +160,7 @@ async fn rest_set_leverage_test() {
 async fn rest_orders_test() {
     global::log_utils::init_log_with_trace();
 
-    let mut ret = get_rest(true);
+    let mut ret = get_rest();
     let req_data = ret.orders(json!({
           "symbol": "BTCUSDT",
            "side": "Buy",
@@ -176,7 +175,7 @@ async fn rest_orders_test() {
 async fn rest_cancel_order_test() {
     global::log_utils::init_log_with_trace();
 
-    let mut ret = get_rest(true);
+    let mut ret = get_rest();
     let req_data = ret.cancel_order(json!({
           "symbol ": "BTCUSDT",
           "posSide": "Long",
@@ -190,20 +189,21 @@ async fn rest_cancel_order_test() {
 async fn rest_cancel_order_all_test() {
     global::log_utils::init_log_with_trace();
 
-    let mut ret = get_rest(true);
+    let mut ret = get_rest();
     let req_data = ret.cancel_order_all(json!({
     })).await;
     println!("Phemex--撤销所有)--{:?}", req_data);
 }
 
 
-fn get_rest(is_proxy:bool) -> PhemexSwapRest {
+fn get_rest() -> PhemexSwapRest {
+    // proxy::ParsingDetail::http_enable_proxy(Some("phemex"));
 
     let mut btree_map: BTreeMap<String, String> = BTreeMap::new();
     btree_map.insert("access_key".to_string(), ACCESS_KEY.to_string());
     btree_map.insert("secret_key".to_string(), SECRET_KEY.to_string());
 
-    let phemex_exc = PhemexSwapRest::new(false, is_proxy,btree_map.clone());
+    let phemex_exc = PhemexSwapRest::new(false, btree_map.clone());
     phemex_exc
 }