我想使用Qt获取腾讯股票接口的数据,使用的是http的get,相当于网页访问,但是腾讯股票接口的网络有获取代码数量限制,现有共5080个左右的股票,准备分成800个每组进行http请求获取,获取后再将结果进行拼接,但是时间要求为同时,请问如何才能使用Qt实现?另外麻烦告知这些属于哪方面知识,推荐些书或教程,谢谢
12条回答 默认 最新
傻傻的心动 2023-02-14 15:39关注对于这个需求,可以考虑使用Qt的网络模块,通过发送多个并发请求来获取所有股票的数据,然后再将结果进行拼接。具体来说,可以使用QNetworkAccessManager类来管理网络请求,使用QNetworkRequest类来设置请求头和URL,使用QNetworkReply类来获取响应数据。
为了实现同时请求多个URL,可以使用QEventLoop类和QTimer类,将每个请求放入事件循环中,通过QTimer的timeout()信号来实现每隔一段时间发送下一个请求,以达到同时请求多个URL的效果。
此外,还需要注意到腾讯股票接口的访问频率限制,需要合理设置请求时间间隔,以避免被封禁IP等风险。
这些属于Qt框架的网络编程和多线程编程知识,可以参考Qt官方文档中的以下章节:
Qt Network Module: https://doc.qt.io/qt-5/qtnetwork-module.html
Multithreading Technologies in Qt: https://doc.qt.io/qt-5/threads-technologies.html
此外,对于网络编程和多线程编程方面的基础知识,可以参考以下经典书籍:Unix网络编程(卷1:套接字联网API)(W.Richard Stevens 著,郑钢 译)
Linux多线程服务端编程(汤亮 著)本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用