查看完整版本: [-- http请求无法二次发起,何故? --]

QTCN开发网 -> Qt基础编程 -> http请求无法二次发起,何故? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

mugua001 2021-07-16 15:52

http请求无法二次发起,何故?

QNetwordAccessManager  *Mgr;  (在窗口的构造函数中new());
QNetworkRequest nReq;
QNetworkReply *nRepy;
fun01()
{
nRepy = Mgr->get(nReq)
}
第1次fun01(),一切正常;
由于是GUI窗口界面,当第二次再  执行 fun01()时,就卡死。尝试过 Mgr->disconnect() 亦无效;

如何解?谢谢

liudianwu 2021-07-16 18:17
肯定是你代码的问题,不用怀疑!

mugua001 2021-07-16 19:11
liudianwu:肯定是你代码的问题,不用怀疑! (2021-07-16 18:17) 

可能会是在哪个环节上?
Mgr是否需要断开重连 ?

mugua001 2021-07-16 19:44
liudianwu:肯定是你代码的问题,不用怀疑! (2021-07-16 18:17) 

请问,第一次请求完了。若Mgr未执行disconnect,是不是这个 http 的会话一直保存着的?(类似浏览器里的cookie或 token一直保存且有效?)

liulin188 2021-07-16 23:04
mugua001:请问,第一次请求完了。若Mgr未执行disconnect,是不是这个 http 的会话一直保存着的?(类似浏览器里的cookie或 token一直保存且有效?) (2021-07-16 19:44) 

是的

mugua001 2021-07-17 00:49
liudianwu:肯定是你代码的问题,不用怀疑! (2021-07-16 18:17) 

问题解决了!留个消息,让后来的同学,免得跟我一样踩坑。

我的问题在于   nReq    *nRepy为全局变量;改为函数私有变量使用,即 正常了。

不知道为何 不能用全局变量……请高手们解惑。

liudianwu 2021-07-17 08:36
mugua001:问题解决了!留个消息,让后来的同学,免得跟我一样踩坑。
我的问题在于   nReq    *nRepy为全局变量;改为函数私有变量使用,即 正常了。
....... (2021-07-17 00:49) 

用完记得reply->deleteLater();

mugua001 2021-07-19 09:12
liudianwu:用完记得reply->deleteLater(); (2021-07-17 08:36) 

啊?
我只在关闭时  Mgr->deleteLater了。Mgr是全局的。

我这个是局部, Mgr->get()直接初始化的,也必需是吧?


查看完整版本: [-- http请求无法二次发起,何故? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled