标题:http请求无法二次发起,何故?
作者:mugua001
日期:2021-07-16 15:52
内容:
QNetwordAccessManager*Mgr;(在窗口的构造函数中new());
QNetworkRequest nReq;
QNetworkReply *nRepy;
fun01()
{
nRepy = Mgr->get(nReq)
}
第1次fun01(),一切正常;
由于是GUI窗口界面,当第二次再执行 fun01()时,就卡死。尝试过 Mgr->disconnect() 亦无效;
如何解?谢谢
#1 [liudianwu 07-16 18:17]
肯定是你代码的问题,不用怀疑!
#2 回 liudianwu 的帖子 [mugua001 07-16 19:11]
liudianwu:肯定是你代码的问题,不用怀疑! (2021-07-16 18:17)
可能会是在哪个环节上?
Mgr是否需要断开重连 ?
#3 回 liudianwu 的帖子 [mugua001 07-16 19:44]
liudianwu:肯定是你代码的问题,不用怀疑! (2021-07-16 18:17)
请问,第一次请求完了。若Mgr未执行disconnect,是不是这个 http 的会话一直保存着的?(类似浏览器里的cookie或 token一直保存且有效?)
#4 回 mugua001 的帖子 [liulin188 07-16 23:04]
mugua001:请问,第一次请求完了。若Mgr未执行disconnect,是不是这个 http 的会话一直保存着的?(类似浏览器里的cookie或 token一直保存且有效?) (2021-07-16 19:44)
是的
#5 回 liudianwu 的帖子 [mugua001 07-17 00:49]
liudianwu:肯定是你代码的问题,不用怀疑! (2021-07-16 18:17)
问题解决了!留个消息,让后来的同学,免得跟我一样踩坑。
我的问题在于 nReq*nRepy为全局变量;改为函数私有变量使用,即 正常了。
不知道为何 不能用全局变量……请高手们解惑。