Qt 的QNetworkAccessManager 出问题了

jdgdf566 2013-09-18 08:27:40
#include <QUrl>
#include <QtNetwork/QNetworkReply>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkAccessManager>

#include <QCoreApplication>
#include <QString>
#include <QDebug>

class NetworkTest:public QObject {
Q_OBJECT
public:

void run() {
//QNetworkRequest * request = new QNetworkRequest();
//QNetworkReply * reply = new QNetworkReply();
QNetworkAccessManager * manager = new QNetworkAccessManager(this);
QNetworkReply * reply;
QUrl url("http://www.forum.nokia.wiki");
QNetworkRequest req;
req.setUrl(url);

QObject::connect( manager, manager->finished, this->finishedSlot );


reply = manager->get(req);
}


//public Q_SLOTS:
void finishedSlot(QNetworkReply * reply) {
qDebug() << reply->readAll() <<endl;
}


};


int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);

NetworkTest * net = new NetworkTest();
net->run();

return a.exec();
}
第23行:错误:no matching function for call to 'NetworkTest::connect(QNetworkAccessManager*&, <unresolved overloaded function type>, <unresolved overloaded function type>)'
第23行改成:
        connect(manager, SIGNAL(finished(QNetworkReply*)),this,SLOT(finishedSlot(QNetworkReply*)));

之后,错误变成:
...全文
705 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_21949375 2015-01-14
  • 打赏
  • 举报
回复
楼主的问题太深奥了,呵呵,我也是新手,没办法帮你,我也是来求助的哈哈。 各位大虾们,求助一个紧急问题: 我是在PC端程序中使用QNetworkAccessManager实现HTTP的数据请求,发送请求的过程中(数据请求还没有完成),断网比较容易高概率出现程序死机。xp上不会出现,在win7(VISTA)系统上出现的概率很高,不知道是QT本身的Bug还是我的代码问题,我实现的代码如下: ////////拨上号时 m_pHttp = new QNetworkAccessManager(); connect(m_pHttp, SIGNAL(finished(QNetworkReply*)), this, SLOT(onHttpFinished(QNetworkReply*))); QUrl url(strHtpPath); QNetworkRequest request = QNetworkRequest(url); m_request = request; m_pHttp->get(request); ///接受数据完成时 void onHttpFinished(QNetworkReply* reply) { if(reply->error() == QNetworkReply::NoError) { QByteArray byteAllRead = reply->readAll(); reply->close(); reply->deleteLater(); } ////断网时 if(m_pHttp != NULL) { m_pHttp->setNetworkAccessible(QNetworkAccessManager::NotAccessible); m_pHttp->deleteResource(m_request); disconnect(m_pHttp, SIGNAL(finished(QNetworkReply*)), this, SLOT(onHttpFinished(QNetworkReply*))); m_pHttp->deleteLater(); m_pHttp = NULL; } 我是直接在GUI的主线程中做的,而且我没有开辟新的线程,我测试了一下,发现QWebView在win7(Vista)系统上,发送请求的过称中,断网也会出现程序死机。大家之前遇到过类似的问题吗?我感觉像是QT本身的BUg,我使用的是QT4.7的版本,大家帮忙分析一下,谢谢!!! ________________________________________ use c#.net qrcode creator to create qrcode in c#.net
jdgdf566 2013-09-25
  • 打赏
  • 举报
回复

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧