如何用VC从网上Http url中读取一串股市行情数据,如新浪数据?谢谢!

vc8fans 2018-04-22 09:50:33
1.http/javascript接口取数据

1.1Sina股票数据接口

以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据
接口:

http://hq.sinajs.cn/list=sh601006
这个url会返回一串文本,例如:

var hq_str_sh601006="大秦铁路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92,
22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89, 14300,
26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32";
这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,
问如何向网页 Http 发送" http://hq.sinajs.cn/list=sh601006" ,,就等待返回 数据即可,
能有相似的例子吗,谢谢!
...全文
510 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
vc8fans 2018-04-22
  • 打赏
  • 举报
回复
已经解决,搜了一下,已经OK了,用 VC++ Http Get Post封装类 /************************Http: Get、Post的封装类***************/ #include "wininet.h" #include "afxinet.h" /*********************类定义***********************************/ class CHttpClient { public: void addParam(CString name,CString value); CString doPost(CString href); CString doGet(CString href); CHttpClient(); virtual ~CHttpClient(); private: CString CONTENT; int CL; CStringList values; CStringList names; }; /*************************类实现********************************/ // 添加字段 void CHttpClient::addParam(CString name, CString value) { names.AddTail((LPCTSTR)name); values.AddTail((LPCTSTR)value); CString eq="="; CString an="&"; CONTENT=CONTENT+name+eq+value+an; CL=CONTENT.GetLength(); } // 以http Get方式请求URL CString CHttpClient::doGet(CString href) { CString httpsource=""; CInternetSession session1(NULL,0); CHttpFile* pHTTPFile=NULL; try{ pHTTPFile=(CHttpFile*)session1.OpenURL(href); //session1. } catch(CInternetException) { pHTTPFile=NULL; } if(pHTTPFile) { CString text; for(int i=0;pHTTPFile->ReadString(text);i++) { httpsource=httpsource+text+"\r\n"; } pHTTPFile->Close(); delete pHTTPFile; }else { } return httpsource; } // 以Http Post方式请求URL CString CHttpClient::doPost(CString href) { CString httpsource=""; CInternetSession session1; CHttpConnection* conn1=NULL; CHttpFile* pFile = NULL; CString strServerName; CString strObject; INTERNET_PORT nPort; DWORD dwServiceType; AfxParseURL((LPCTSTR)href, dwServiceType, strServerName, strObject, nPort); DWORD retcode; char* outBuff = CONTENT.GetBuffer(1000); try { conn1 = session1.GetHttpConnection(strServerName, nPort); pFile = conn1->OpenRequest(0,strObject,NULL,1,NULL,"HTTP/1.1",INTERNET_FLAG_EXISTING_CONNECT|INTERNET_FLAG_NO_AUTO_REDIRECT); pFile -> AddRequestHeaders("Content-Type: application/x-www-form-urlencoded"); pFile -> AddRequestHeaders("Accept: */*"); pFile -> SendRequest(NULL,0,outBuff,strlen(outBuff)+1); pFile -> QueryInfoStatusCode(retcode); } catch (CInternetException * e){}; if(pFile) { CString text; for(int i=0;pFile->ReadString(text);i++) { httpsource=httpsource+text+"\r\n"; } pFile->Close(); }else { // do anything..... } return httpsource; delete pFile; delete conn1; session1.Close(); }

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧