ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Qt 编译QtHttpServer(0.1.0)

2022-05-18 02:31:06  阅读:168  来源: 互联网

标签:Qt QMyHttpServer 0.1 QtHttpServer dll QHttpRequest master qhttpserver pServer


1、下载QtHttpServer,并解压到E:/qhttpserver-master

  https://github.com/qt-labs/qthttpserver

2、下载第三方依赖http-parser,并解压到E:/qhttpserver-master/http-parser

  https://github.com/nodejs/http-parser

3、用Qt 5.9.8打开E:/qhttpserver-master/qhttpserver.pro,编译Debug和Release两个版本,

  在E:/qhttpserver-master/lib目录下生成三个文件:

  libqhttpserver.a、qhttpserverd.dll、qhttpserver.dll

  头文件包含:

  qhttpconnection.h、qhttprequest.h、qhttpresponse.h、qhttpserver.h、

  qhttpserverapi.h、qhttpserverfwd.h

4、例子:

  创建qt工程,pro文件中添加:Qt += network

  CONFIG(debug,debug|release):LIBS += $$PWD/lib/qhttpserverd.dll

  else:LIBS += $$PWD/lib/qhttpserver.dll

  INCLUDEPATH += httpserver

 

5、创建QMyHttpServer类,基于QObject,定义变量

  private:

    QHttpServer* m_pServer;

    QHttpRequest* m_pRequest;

    QHttpResponse* m_pResponse;

    QString m_strRequest;

6、初始化服务

  m_pServer = new QHttpServer(this);
  connect(m_pServer,SIGNAL(newRequest(QHttpRequest*,QHttpResponse*)),this,SLOT(handleRequest(QHttpRequest*,QHttpResponse*)));

  m_pServer->listen(QHostAddress::Any,8019);

7、注册信号:

  void QMyHttpServer::handleRequest(QHttpRequest* request,QHttpResponse* response)
  {
    m_pRequest = request;
    m_pResponse= response;
    connect(m_pRequest,SIGNAL(data(QByteArray)),this,SLOT(appendBody(QByteArray)));//有数据来时存起来
    connect(m_pRequest,SIGNAL(end()),this,SLOT(dealRequest()));//数据传输结束时处理
  }

  void QMyHttpServer::appendBody(QByteArray body)
  {
    m_strRequest += body;
  }

  void QMyHttpServer::dealRequest()

  {

    //处理

  }

 

 

  

标签:Qt,QMyHttpServer,0.1,QtHttpServer,dll,QHttpRequest,master,qhttpserver,pServer
来源: https://www.cnblogs.com/zhangnianyong/p/16283136.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有