zoukankan      html  css  js  c++  java
  • 使用Qt访问网站的基本例子

    我使用Qt版本是Qt5.14.0

    注:本例子只能用Http协议,如果要使用Https协议,请查看这篇文章:《Qt使用HTTPS协议访问网站

    在本例子中需要使用以下几个类:

    <QNetworkAccessManager>
    <QNetworkReply>
    <QNetworkRequest>

     

    使用方式:

    1.在源文件中添加这个头文件:

    #include <QtNetwork>

    如果提示没有这个头文件,请先执行第二步,并保存.pro文件。

    2.在.pro项目文件中添加以下代码:

    QT += network

     

    源码:

    #include <QCoreApplication>
    #include "TestNet.h"
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        TestNet One;
        One.GetWeb();
    
        return a.exec();
    }
    
    //main.cpp
    #include <QtNetwork>
    #include <iostream>
    #include <QFile>
    
    class TestNet : public QObject
    {
        Q_OBJECT
    public:
        QNetworkAccessManager *m_manager = NULL;
        QNetworkRequest *m_request = NULL;
    
        //访问网站
        void GetWeb()
        {
            //建立新对象
            m_manager = new QNetworkAccessManager();
            m_request = new QNetworkRequest(QUrl("http://www.baidu.com/"));
    
            //连接槽
            QObject::connect(m_manager,&QNetworkAccessManager::finished,this,&TestNet::GetWebFinished);
    
            //发送Get请求
            m_manager->get(*m_request);
        }
    
        //访问后做的操作
        void GetWebFinished(QNetworkReply *reply)
        {
            //转换为utf-8编码,这样就可以显示中文了
            QTextCodec *codec = QTextCodec::codecForName("utf8");
            QString getData = codec->toUnicode(reply->readAll());
    
            //输出文件
            QFile out_file("One.html");
            out_file.open(QIODevice::Text | QIODevice::WriteOnly);
    
            out_file.write(getData.toUtf8());
    
            out_file.close();
        }
    
    };
    
    //TestNet.h
  • 相关阅读:
    洛谷P6276 [USACO20OPEN]Exercise P(生成函数)
    牛顿迭代求逆元
    线性基求交
    我卷我自己加强
    AGC013 简要题解
    LOJ#6074 「2017 山东一轮集训 Day6」
    JAVA根据下载地址获取文件的Base64
    JS 作用链,箭头函数 this 取值
    Leetcode 1249 移除无效的括号
    Vue的数据绑定
  • 原文地址:https://www.cnblogs.com/BlogPuppet/p/12803676.html
Copyright © 2011-2022 走看看