QT下用代码在程序内部搭建一个简单的HTTP协议服务器

为了解决第三方PDF控件仅支持http/https协议打开文件的问题,博主在QT程序内部搭建了一个简单的HTTP服务器。通过模拟HTTP协议,实现本地文件通过HTTP加载。核心在于解析HTTP请求,读取文件二进制数据并构造响应报文。启动服务时,通过URL编码传递文件路径,服务器解码后加载文件。这样,即使控件不支持本地路径,也能正常显示文件内容。
摘要由CSDN通过智能技术生成

最近使用一个第三方PDF控件,此控件提供的一个打开文件方法只能支持http和https协议,所以没办法加载本地文件,最后试了半天各种方案,决定在程序内部启动一个简单的http服务器。

原理很简单利用传输层的TCP协议,模拟HTTP协议。

首先搞清http是如何加载网络文件的,方法很简单,在浏览器里面打开一个文件(我这是需求是PDF类型),然后用抓包工具看返回数据格式:

HTTP/1.1 200 OK
Content-Type: application/pdf
Last-Modified: Mon, 08 Dec 2014 08:58:40 GMT
Accept-Ranges: bytes
ETag: "9516d29c512d01:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Mon, 02 Nov 2015 08:34:34 GMT
Content-Length: 545923

%PDF-1.5
%µµµµ
1 0 obj
<</Type/Catalog/Pages 2 0 R/Lang(zh-CN) /StructTreeRoot 38 0 R/MarkInfo<</Marked true>>>>
endobj
2 0 obj

这是一个简单的http协议,不是所有项都需要,只要模拟下面几项就可以了

1.HTTP/1.1 200 OK

2.Content-Type: application/pdf

3.Accept-Ranges: bytes

4.Content-Length:  545923

5.文

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值