最近使用一个第三方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.文