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
  • 相关阅读:
    [设计模式]之依赖倒置
    CSS的三种使用方式
    CSS的语法结构
    学习 jQueryMobile 第一个程序
    初识 GoogleMap
    程序员考试
    程序员考试
    CSS学习
    认识CSS
    开始忙一段时间
  • 原文地址:https://www.cnblogs.com/BlogPuppet/p/12803676.html
Copyright © 2011-2022 走看看