diff --git a/getPrecisions.cpp b/getPrecisions.cpp new file mode 100644 index 0000000..996bfb9 --- /dev/null +++ b/getPrecisions.cpp @@ -0,0 +1,86 @@ +#include +#include + +// 函数:获取精度信息 +std::map getPrecisions(const std::string& platform) { + std::map precisions; + CURL* curl; + CURLcode res; + std::string response; + + curl_global_init(CURL_GLOBAL_DEFAULT); + curl = curl_easy_init(); + if (curl) { + // 定义请求 URL + std::string url = "http://43.133.213.20:8001/api/v1/PrecisionInfo/platform"; + + // 定义请求数据 + std::string query = "platform=" + platform; + + // 设置 CURL 选项 + curl_easy_setopt(curl, CURLOPT_URL, (url + "?" + query).c_str()); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); + curl_easy_setopt(curl, CURLOPT_TIMEOUT, 15L); // 设置超时时间为15秒 + + // 执行请求 + res = curl_easy_perform(curl); + if (res != CURLE_OK) { + std::cerr << "getPrecisions failed: " << curl_easy_strerror(res) << std::endl; + } else { + Json::Value jsonData; + Json::CharReaderBuilder readerBuilder; + std::string errs; + + std::istringstream responseStream(response); + if (Json::parseFromStream(readerBuilder, responseStream, &jsonData, &errs)) { + for (const auto& key : jsonData.getMemberNames()) { + // std::cout << key << ": " << jsonData[key] << std::endl; + precisions[key] = jsonData[key].toStyledString(); + } + } else { + std::cerr << "解析 JSON 失败: " << errs << std::endl; + } + } + // 清理 + curl_easy_cleanup(curl); + } + curl_global_cleanup(); + + return precisions; +} + + + // 调用示例 +std::map precisions = getPrecisions(platform); + +// 打印解析后的结果(如果解析了的话) +for (const auto& kv : precisions) { + if (kv.first == GateSwapUSymbolLower) { + std::cout << kv.first << ": " << kv.second << std::endl; + Json::Value jsonData; + Json::CharReaderBuilder readerBuilder; + std::string errs; + + std::istringstream responseStream(kv.second); + if (Json::parseFromStream(readerBuilder, responseStream, &jsonData, &errs)) { + double min_size = jsonData["min_size"].asDouble(); + double min_value = jsonData["min_value"].asDouble(); + double price_decimal = jsonData["price_decimal"].asDouble(); + int price_precision = jsonData["price_precision"].asInt(); + int real_size_precision = jsonData["real_size_precision"].asInt(); + GateSwapUsize_decimal = jsonData["size_decimal"].asDouble(); + int size_precision = jsonData["size_precision"].asInt(); + + std::cout << "min_size: " << min_size << std::endl; + std::cout << "min_value: " << min_value << std::endl; + std::cout << "price_decimal: " << price_decimal << std::endl; + std::cout << "price_precision: " << price_precision << std::endl; + std::cout << "real_size_precision: " << real_size_precision << std::endl; + std::cout << "GateSwapUsize_decimal: " << GateSwapUsize_decimal << std::endl; + std::cout << "size_precision: " << size_precision << std::endl; + } else { + std::cerr << "解析 JSON 失败: " << errs << std::endl; + } + } +} \ No newline at end of file