林试图连接到一个网站,并执行与QT的请求,我得到这个代码,到目前为止,但它告诉我下面的错误:做一个qt的网络请求
#include <QCoreApplication>
#include <QDebug>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QUrl>
#include <QUrlQuery>
void sendRequest();
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
sendRequest();
return a.exec();
}
void sendRequest() {
QNetworkAccessManager *manager = new QNetworkAccessManager(this); connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://qt-project.org")));
}
它说:
错误1错误C2355:“这个”:\用户\ Synturas \文件\视觉工作室 2013 \项目\ qt_request \ qt_request:只能内部非静态 成员函数或非静态数据成员 初始化ç引用\ main.cpp 19 1 qt_request
错误2错误C2355:“这个”:\用户\ Synturas \文件\视觉工作室 2013 \项目\ qt_request \ qt_request:只能内部非静态 成员函数或非静态数据成员 初始化Ç引用\ main.cpp中21 1 qt_request
错误3错误C3861: '连接':标识符不 实测值C:\ Users \用户Synturas \文件\视觉工作室 2013 \项目\ qt_request \ qt_request \ main.cpp中20 1 qt_request 4智能感知:'this'只能在非静态成员中使用 函数c:\ Users \ Synturas \ Documents \ Visual Studio 2013 \ Projects \ qt_request \ qt_re任务\ main.cpp中19 61 qt_request
5智能感知:标识符 “连接” 是 未定义C:\用户\ Synturas \文件\的Visual Studio 2013 \项目\ qt_request \ qt_request \ main.cpp中20 2 qt_request
6智能感知: '这个' 可以仅由非静态成员 函数c内使用:\用户\ Synturas \文件\的Visual Studio 2013 \项目\ qt_request \ qt_request \ main.cpp中21 3 qt_request
(在这个项目中使用VS2013,如果这是相关的)
@Synturas在这里我们可以做到这一点的HTML代码,这个消息的结果可以在网络和每个想要学习东西的人看到新的可以读取它。请参阅我的编辑,我添加了解释并为每条重要线路写了评论。 – Chernobyl 2014-09-27 17:24:46
很好的解释,了解一切!但为什么它没有按我的方式工作? – orbatschow 2014-09-27 17:30:57
@Synturas主要的错误是在'QNetworkAccessManager(this)'中,您尝试在主cpp中将父元素设置为QNetworkAccessManager,只有QObject子类可以作为另一个类的父元素。第二:你尝试做连接,但连接是QObject的静态方法,所以它应该至少是'QObject :: connect',但是你的代码不能做任何事情,因为你没有提供可以捕获信息的槽打印它(replyFinished插槽在我的答案做到这一点) – Chernobyl 2014-09-27 17:39:14