L
loshita2009
Unregistered / Unconfirmed
GUEST, unregistred user!
近来工作清闲 为了不浪费时间 偷偷装了个delphi温习下;下了个realthingclient 3.x (官网下载的最新版) 就开始搞了写到下载部分的时候 我发现 他的 write 方法 不能通知浏览器开始下载只能是右键点击下载以前还不需要接触 HTTP 协议的格式难道这个控件 需要我自己加入 HTTP头 来告诉浏览器开始下载吗如果是 请给个最简单的例子 权当学习下了 200分不多 请笑纳当然 希望它已经封装了 HTTP 头..........*********** 分割线 ***********如我所想 的确封装了HTTP头, 做一个自己专用的 web server 完全没问题;如果不是什么巨大的项目 完全可以不要IIS这类东西了;而且还能添加更多功能进去, 比如在server端添加远程控制的接口;这里分享一下 我在官网的demo中学习 并自己进行练习的实例 (已经实测通过)首先放入一个 HTTPsevrer 控件 这个东西已经封装了非常多的HTTP协议, 是我们这个程序的底层架构; 如果再要做得更底层, 那就自己去用indy10来搞吧; 这里 我们有GUI来设定domain 监听port口 是否支持多线程等等 很简单方便;然后放入 TRtcDataProvider这个东西是让你处理数据 I/O 的 实际上就相当于 ASP PHP 的内核, 都是动态处理数据; 当然 你也可以 读入外面的脚本 动态地生成页面;脚本解析是要你自己去做的, 你完全可以写个解析器 起名叫 DSP (delphi script page)跟ASP PHP 是完全一个性质的东西再将TRtcDataProvider 绑定到 httpserver 哪里去, 一个HTTP server 就完成了耗时大概三十秒我们做出来的server 功能非常齐全 已经全部封装了;但现在还没什么用 因为我们没有给他数据 (也就是 HTML 页面)也没有告诉server该如何工作好, 我们开始告诉server 该如何处理各种请求, 各种数据在TRtcDataProvider 事件那页; 双击 CheckRequest这里我们可以定义 当用户输入一个地址后 server 该怎么做跟ASP差不多 也有一个request属性举个例子 我们一般都习惯直接输入 网址来访问比如 http://myhostname那么IE会自动加入 “/” 变成 http://myhostname/我不知道firefox会不会这样做 不过无所谓 我们做个判断就是了然后我们读取 request属性 里面的filename 属性见下面request.filename它会返回 “/”我们进行判断后 就给他输出指定的页面 “index.htm”这就是我们平时所说的 默认页面当然 在IIS里面 微软已经做好了GUI 默认页面让我们直接填, 还可以填好几个 还能有优先级。。。这里则要自己写程序搞罗 呵呵if UpperCase( Request.FileName )='/READ' then begin这里 我们可见 它是分大小写的今天写到这里 下次继续