码迷,mamicode.com
首页 > 其他好文 > 详细

Qt设置阻塞式网络请求,和超时处理

时间:2017-05-09 19:42:48      阅读:1750      评论:0      收藏:0      [点我收藏+]

标签:thread   client   timeout   异常   username   work   type   成功   apr   

QNetworkProxy proxy;
proxy.setType(QNetworkProxy::Socks5Proxy);
proxy.setHostName(LOCAPROXYIP);
proxy.setPort(LOCAPROXYPORT);
proxy.setUser(PROXYUSERNAME);
proxy.setPassword(PROXYPWD);
QTimer timer;
timer.setInterval(CHECKPROXYNETWORKTIMES);
timer.setSingleShot(true);
QNetworkAccessManager manager;
manager.setProxy(proxy);
QNetworkRequest request;
request.setUrl(QUrl(CHECKREMOTEURL));
QNetworkReply *pReply = manager.get(request);
QEventLoop loop;
QObject::connect(&timer, &QTimer::timeout, &loop, &QEventLoop::quit);
QObject::connect(pReply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
timer.start();
loop.exec();
if (timer.isActive()) {
timer.stop();
if (pReply->error() != QNetworkReply::NoError) { //访问异常
//CLIENT_APP->commMessageBoxInt(CLIENT_APP->_listPollIndex);
CLIENT_APP->startShadowProxyApp();
Sleep(CHECKTHREADTIMES);
}
else
{
//CLIENT_APP->commMessageBoxInt(CLIENT_APP->_listPollIndex);
Sleep(CHECKPROXYNETWORKSUCCTIMES);//成功了 设置延迟
}
}
else {//超时
//CLIENT_APP->commMessageBoxInt(CLIENT_APP->_listPollIndex);
QObject::disconnect(pReply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
pReply->abort();
pReply->deleteLater();
CLIENT_APP->startShadowProxyApp();
Sleep(CHECKTHREADTIMES);
}

Qt设置阻塞式网络请求,和超时处理

标签:thread   client   timeout   异常   username   work   type   成功   apr   

原文地址:http://www.cnblogs.com/gx1069/p/6832078.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!