QT 实现 httpserver

 时间:2026-02-13 05:53:03

1、百度搜索QtWebApp ,进入光颂官网,下载它的源码,参考下图所示

QT 实现 httpserver

QT 实现 httpserver

2、QtWebApp 本身是基于qt creator开发的,如果你也想使用vs2013打开,需要安装vs2013和qt的vs插件,下面是解压后的文件

QT 实现 httpserver

3、在菜单栏里打开一个qt的工程文件

QT 实现 httpserver

4、加载工程完成后,是这样子的,工程是可以直接编译通过,和运行的

QT 实现 httpserver

QT 实现 httpserver

5、你将QtWebApp添加到你的工程中,自己实现处理的接口就可以简单的实现一个httpserver了,主要是图2的类,

class RequestHandler : public HttpRequestHandler {

    Q_OBJECT

    Q_DISABLE_COPY(RequestHandler)

public:

    /**

      Constructor.

      @param parent Parent object

    */

    RequestHandler(QObject* parent=0);

    /**

 独拒披     Process an incoming HTTP request.

      @param request The received HTTP request

      @param response Must be used to return the response

    */

    void service(HttpRequest& request, HttpResponse& response);

};

你从HttpRequestHandler派生实现一个子类,实现service的接口就吐闲可以,非常简单,所有的请求都是在service的接口处理的

QT 实现 httpserver

QT 实现 httpserver

6、你可以将你的业务逻辑,放在这个接口里就可以了,下面是它的部份实现代码

void RequestHandler::service(HttpRequest& request, HttpResponse& response)

{

    QByteArray path=request.getPath();

    qDebug("Conroller: path=%s",path.data());

    // Set a response header

    response.setHeader("Content-Type", "text/html; charset=ISO-8859-1");

    // Return a simple HTML document

    response.write("<html><body>Hello World</body></html>",true);

    qDebug("RequestHandler: finished request");

    // Clear the log buffer

    if (logger)

    {

       logger->clear();

    }

}

QT 实现 httpserver

7、然后是启动的初始化,关键代码就是下面这块

QString configFileName = ".\\etc\\Demo3.ini";

    // Configure logging into a file

QSettings* logSettings = new QSettings(configFileName, QSettings::IniFormat, this);

    logSettings->beginGroup("logging");

    logger=new FileLogger(logSettings,10000);

    logger->installMsgHandler();

    // Configure and start the TCP listener

    qDebug("ServiceHelper: Starting service");

QSettings* listenerSettings = new QSettings(configFileName, QSettings::IniFormat, this);

    listenerSettings->beginGroup("listener");

listener = new HttpListener(listenerSettings, new RequestHandler(this), this);

    qWarning("Startup: Service has started");

QT 实现 httpserver

  • 如何在AIScratch中制作进度条功能
  • 在Windows Server 2003系统中创建简单卷
  • 3dsMax怎样设置全局照明
  • Axure如何添加表单提交按钮,详细教程
  • 5d3怎么使用无线SD卡
  • 热门搜索
    两万块钱能做什么生意 违章扣分什么时候清零 干咳是什么意思 飘窗台面用什么材料好 cvv是什么意思 环球黑卡有什么用 雅正是什么意思 逐风者的祝福之剑 st股票是什么意思 格式化是什么意思