虹姥 发表于 6 小时前

C++如何查询实时贵金属行情

在本文中,我们将通过C++接入贵金属实时行情数据接口,帮助你获取黄金和白银等贵金属的K线数据。我们会使用 libcurl 库进行HTTP请求,并处理API返回的数据。
一、API请求地址

贵金属的实时行情通过如下API获取:
https://data.infoway.io/common/batch_kline/{klineType}/{klineNum}/{codes}
// 申请API Key: www.infoway.io入参说明:
{klineType} 是K线的时间周期,传入不同的值代表不同周期的K线:
11分钟k线25分钟k线315分钟k线430分钟k线51小时k线62小时k线74小时k线81日k线91周k线101月k线111季k线121年k线{klineNum} 是需要的K线数量,这个接口支持能查询最近的500根K线。
{codes} 是资产代码,比如黄金是XAUUSD
二、代码示例

假设我们需要查询黄金和白银的1分钟K线,请求地址是:
https://data.infoway.io/common/batch_kline/1/2/XAUUSD%2CXAGUSD
// 这个地址能返回黄金和白银最近的2根1分钟K线完整代码如下:
#include #include #include // 回调函数,用来接收HTTP响应的数据size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* out) {    size_t total_size = size * nmemb;    out->append((char*)contents, total_size);    return total_size;}int main() {    CURL* curl;    CURLcode res;      // 设置 API URL 和请求头    // 申请API Key: www.infoway.io    const std::string api_url = "https://data.infoway.io/common/batch_kline/1/2/XAUUSD%2CXAGUSD";      // 初始化 libcurl    curl_global_init(CURL_GLOBAL_DEFAULT);    curl = curl_easy_init();      if (curl) {      // 设置 URL      curl_easy_setopt(curl, CURLOPT_URL, api_url.c_str());                // 设置请求头      struct curl_slist* headers = NULL;      headers = curl_slist_append(headers, "User-Agent: Mozilla/5.0");      headers = curl_slist_append(headers, "Accept: application/json");      headers = curl_slist_append(headers, "apiKey: yourApikey");      curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);                // 存储响应结果      std::string response_string;      curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);      curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response_string);                // 发送 GET 请求      res = curl_easy_perform(curl);                if (res != CURLE_OK) {            std::cerr
页: [1]
查看完整版本: C++如何查询实时贵金属行情