QT笔记 1 http请求

在.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());
}

以上是请求网址的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值