栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

HTTP 服务控件TWebServer(使用Indy 的TIdHTTPServer 实现)

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HTTP 服务控件TWebServer(使用Indy 的TIdHTTPServer 实现)

在开发移动端App的时候,需要使用 WebBrowser 作为平台来展示H5界面,这个时候就需要在App内部实现一个 HttpServer 服务。对于 Delphi 来说,使用 Indy 的 TIdHTTPServer 实在是最好不过了。为了方便使用,我们将 TIdHTTPServer 根据我们的需要进行了封装,这样使用起来会比较方便。本文将详细介绍封装好的控件 TWebServer(有不同需求的可以根据源代码自行修改)。

控件源代码下载

(没有CSDN 分数的,联系QQ:910731685 发给你)

一、控件属性:

序号属性类型说明
1DefaultPortWordHttp服务的端口号,默认:8080
2RootDirstring本地H5文件的根目录。windows下默认在执行文件所在目录中的WWW子目录,android 默认在 TPath.GetDocumentsPath 木下的 WWW 子目录
3MaxConnectionsinteger允许客户端的最大连接数。默认:0 表示不限制。
4ActiveBoolean是否启动 Http 服务,默认: False

二、控件方法:

序号方法类型说明
1StartServerfunction启动Http服务函数 :function StartServer(var errmsg : string) : Boolean。成功: True,启动失败则返回False,同时 errmsg 表示错误信息。
2StopServerprocedure停止Http服务

三、控件事件:

序号事件类型说明
1OnPost事件前端向服务器发送 Post 请求时触发这个事件,本控件只支持字符串参数(流参数未支持)。RequestStr: string; var ResponseStr : string。其中 RequestStr 表示请求参数,ResponseStr 表示返回给前端的字符串参数。
2OnGetParams事件

当前端通过 Get 请求服务,如果没有找到对应的文件,同时也存在请求连接参数或者 form-data 参数,就会触发这个事件。

参数:

URL:请求路径
RequestParamsStr:请求的字符串参数
ResponseStr:返回给前端的字符串

举例如下:
加入前端请求:http://127.0.0.01:8080/Data?Name=sensor&Add=Shenzhen

则事件中的参数如下:
URL:/Data
RequestParamsStr:{"Name":"sensor","Add":"Shenzhen"}  //按照JSON的字符串格式返回
 

四、控件使用:

var
   WebServer : TWebServer;

   WebServer := TWebServer.Create(nil);
   WebServer.DefaultPort := 8080;  //默认就是8080,可以写
   WebServer.OnPost := myOnPost;
   WebServer.OnGetParams := myOnGetParams;
   if not WebServer.StartServer(errmsg) then
      showmessage(errmsg);    //服务器打开失败

五、注意事项:

        1. 把 H5 的文件放置到 RootDir 属性所指的根目录。对于 windows 可以直接拷贝,对于移动端,可以通过 Delphi 的 Deployment 菜单增加,可以包含子目录。

         2. 对于 H5 静态文件系统已经默认处理了,移动App正常情况下也不会 Get 不存在的文件,而且还带参数,所以 OnGetParams 事件根本无需处理。

        3. 在移动 App 成功打开服务后,找到IP地址,在 PC上也是可以访问的。

        4. 如果在 PC上测试,需要注意防火墙限制。

控件已经在 PC 和 android 上测试通过。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983626.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号