正在执行qt网络请求
Doing a qt network request
我试图连接到一个网站并用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:"this":只能在非静态内部引用成员函数或非静态数据成员初始化程序c:\Users\Synturas\documents\visualstudio2013\Projects\qt_request\qt_request\main.cpp 19 1 qt_request
错误2错误C2355:"this":只能在非静态内部引用成员函数或非静态数据成员初始化程序c:\Users\Synturas\documents\visualstudio2013\Projects\qt_request\qt_request\main.cpp 21 1 qt_request
错误3错误C3861:"connect":标识符不是找到c:\Users\Synturas\documents\visual studio2013\Projects\qt_request\qt_request\main.cpp 20 1 qt_request4 IntelliSense:"this"只能在非静态成员内部使用函数c:\Users\Synturas\Documents\Visual Studio2013\Projects\qt_request\qt_request\main.cpp 19 61 qt_request
5 IntelliSense:标识符"connect"为未定义c:\Users\Synturas\Documents\Visual Studio2013\Projects\qt_request\qt_request\main.cpp 20 2 qt_request
6 IntelliSense:"this"只能在非静态成员内部使用函数c:\Users\Synturas\Documents\Visual Studio2013\Projects\qt_request\qt_request\main.cpp 21 3 qt_request
(我在这个项目中使用VS2013,如果这是相关的)
试试这个例子:
解释:您创建了一个新的类,它将为您工作,在main.cpp中创建这个类的实例并调用方法。
*.h
#ifndef NET_H
#define NET_H
#include <QObject>
#include <QtCore>
#include <QNetworkAccessManager>
#include <QNetworkReply>
class Net : public QObject
{
Q_OBJECT
QNetworkAccessManager *manager;
private slots:
void replyFinished(QNetworkReply *);//slot, we want catch responce
public:
void CheckSite(QString url);//our method
};
#endif // NET_H
*.cpp
#include "net.h"
void Net::replyFinished(QNetworkReply *reply) //this slot called when we have responce
{
qDebug() << reply->readAll(); //we read result and print it(also you can save it in some variable and use in code
}
void Net::CheckSite(QString url)
{
QUrl qrl(url);//QUrl has network adress
manager = new QNetworkAccessManager(this);//create manager
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));//do connection with nededed signal and slot which we alredy wrote
manager->get(QNetworkRequest(qrl));//send get request
}
主
#include "net.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Net handler;//create instance
handler.CheckSite("http://qt-project.org");//set path and wait for responce
return a.exec();
}
结果:Qt站点的html代码
- 我的神经网络不起作用 [XOR 问题]
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- GetShortPathName在网络驱动器上使用中文文件夹时失败
- 如何在boost beast http请求中设置http头
- 发送一个带有libcurl C++问题的帖子请求:s
- 通过网络、跨平台传递std::变体是否安全
- 如何在MNIST上提高网络运行的准确性
- 在多个核心中处理一个HTTP请求
- Active Directory:从网络服务帐户下运行的Windows服务调用ADsOpenObject时失败
- OpenCV 4.1.2 - 从网络摄像头获取帧并将其拆分
- 使用OpenCV和覆盆子上的多个网络摄像头拍摄延时摄影,出现多个V4L错误
- 使用 dbus-cpp 列出 WPA 请求方网络属性
- 如何在Qt中正确中止网络请求
- 当代码已经输入curl_easy_perform()时,如何中止网络请求
- Qt网络请求自动添加意外问号
- 如何使用 Windows 本机 Wifi 功能连接到请求网络安全密钥的 Wifi
- Qt QJsonModel 在网络请求结束时不起作用
- 正在执行qt网络请求
- 在curl请求期间是否有网络断开的回调
- 在网络层区分文件下载和网页请求