在.pro里添加network
添加头文件
#include <QNetworkAccessManager>
QNetworkAccessManager *manager;
定义槽
void slotNetwork(QNetworkReply *);
绑定信号槽
manager = new QNetworkAccessManager;
connect(manager, &QNetworkAccessManager::finished, this, &HomePage::slotNetwork);
发起get请求
manager->get(QNetworkRequest(QUrl("https://wis.qq.com/weather/common?"//发起get请求
"source=xw&refer=h5&weather_type=observe|"
"air|tips&province=广西&city=南宁市&county=西乡区")));
添加一个头
#include <QNetworkReply>
打印信息
void HomePage::slotNetwork(QNetworkReply *reply)
{
qDebug() << reply->readAll();
}
第一次运行可能会出错
解决方法
打开D:\QT5.11\Tools\mingw530_32\opt\bin
将目录下的ibeay32.dll和ssleay32.dll拷贝到
D:\QT5.11\Tools\mingw530_32\bin
报错信息:qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
如果是32bit的编译器,去到qt的安装目录下,如C:\Qt\Qt5.14.2\Tools\QtCreator\bin,找到libcrypto-1_1.dll、libssl-1_1.dll这两个文件放置到C:\Qt\Qt5.14.2\Tools\mingw730_32\bin即可
检查所使用的qt对应的ssl版本:
qDebug() << QSslSocket::supportsSsl() <<
QSslSocket::sslLibraryBuildVersionString() <<
QSslSocket::sslLibraryVersionString();
如果是64bit的编译器,需要自己下载安装,一般使用1.1.1版本的ssl
官方地址:https://slproweb.com/products/Win32OpenSSL.html
安装时注意让他将动态库copy到ssl目录下,而不是系统目录
我这里默认安装路径为:C:\Program Files\OpenSSL-Win64\bin
最后再将上面提到的两个动态库拷贝到C:\Qt\Qt5.14.2\Tools\mingw730_64\bin下即可
出现这个表示成功
添加QString使其显示中文
void HomePage::slotNetwork(QNetworkReply *reply)
{
qDebug() << QString(reply->readAll());
}
以上是请求网址的方法