当前位置: 代码迷 >> QT开发 >> get形式获取实时数据似乎用qt的network不行吧
  详细解决方案

get形式获取实时数据似乎用qt的network不行吧

热度:44   发布时间:2016-04-25 04:06:44.0
get方式获取实时数据似乎用qt的network不行吧
本帖最后由 oXiFangShiBai 于 2013-02-05 03:48:05 编辑
我的软件和某开放平台对接

需要根据请求内容 时间等 一系列数据进行加密,然后生成一个加密URL,访问这个URL,才可以得到真实内容

像qt的网络类  都是请求了, 要等他自己返回了 才可以得到, 之前的类获取网页都是如下方式:

txt=get("http://www.baidu.com");
ChuLi(txt);
log(txt);
这种方式,请求立即返回内容,我可以继续往下执行,不会出现说,我要在SLOT对应的函数里执行ChuLi(txt);和log(txt);

而现在的这种信号的方式,似乎不太好弄哦
比如我访问了网页,需要立即获取返回内容进行处理:

Qstring PostRequest="aaaaa";
 QTcpSocket ttcp=new QTcpSocket;
ttcp.connectToHost("www.baidu.com", 80);
ttcp.write(PostRequest,strlen(PostRequest));
 connect(ttcp, SIGNAL(readyRead()), this, SLOT(readMessage()));

由于不同的功能块生成的请求连接不同,那么返回的内容也就不同,我用来处理这些内容的函数也就不同,
这种方式,所有内容都给了readMessage() 我如何区分呢?
倘若,我在每个功能函数里,都生成不同的请求连接,然后对应的SLOT都用不同的,那这样感觉好麻烦哦
还是比较习惯传统的, 大家有什么看法 或者有什么指点的吗




总感觉,需要等他的readyRead 信号,觉得可能不及时,万一出现了网络延迟,太麻烦了 

------解决方案--------------------
使用QNetworkReply * QNetworkAccessManager::get ( const QNetworkRequest & request )以及finished信号。
  相关解决方案