700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > MFC之利用新浪股票行情接口抓取实时行情

MFC之利用新浪股票行情接口抓取实时行情

时间:2020-03-20 15:45:17

相关推荐

MFC之利用新浪股票行情接口抓取实时行情

股票数据的获取目前有如下两种方法可以获取:

1. http/javascript接口取数据

2. web-service接口

这里我们选择http/javascript接口取数据

新浪股票代码格式为

/list=sh600519 -贵州茅台

数据格式详情可以参考博客

/simon803/article/details/7784682

通过访问该URL返回一串文本,我们可以通过创建向量数组将其存储下来。

同时你需要将curl库添加到你的头文件中。

代码如下(以贵州茅台为例):

#include <curl/curl.h> #include <Windows.h>#include <iostream>#include <string>#include <vector>using namespace std;vector<string> subStrToVec(string str, char sep) //将文本通过逗号分隔,来获取自己想要的数据{vector<string> vecArr;int flagSub = 0;for (int i = 0; i < str.length(); i++) {if (str[i] == ',') {string temp = str.substr(flagSub, i - flagSub);vecArr.push_back(temp);flagSub = i + 1;}}return vecArr;}size_t WriteCallback(char* contents, size_t size, size_t nmemb, void* userp) //回调函数{((std::string*)userp)->append((char*)contents, size * nmemb);return size * nmemb;}vector<string> main1(string s1){std::string readBuffer;CURL* curl;CURLcode res;string url = "/list=sh600519";vector<string> vecArr;curl = curl_easy_init();if (curl) {curl_easy_setopt(curl, CURLOPT_URL, url.c_str());curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer); //将文本转存为字符串res = curl_easy_perform(curl);curl_easy_cleanup(curl);vecArr = subStrToVec(readBuffer, ',');readBuffer.clear(); //将字符串清空}return vecArr;}int main(){string s = "/list=sh600519"; //以贵州茅台代码为例vector<string> vecArr=main1(s);HWND hWnd;SetTimer(hWnd, 1, 1000, NULL); //实时获取行情数据for (int i = 0; i < vecArr.size(); i++) //输出{cout << vecArr.at(i) << endl;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。