IdHttpServer实现webservice

 

朋友有个项目,通信协议使用HTTP,数据序列使用BIN(二进制)。他不知道要选用何种技术方案。

REST webservice是http+json,SOAP webservice是http+xml,好像都不适合。

于是想到了使用INDY的TidHttpServer控件来实现。TidHttpServer是可以实现webservice中间件的。

限于篇幅,省略若干代码。

中间件代码:

//设置绑定参数
IdHTTPServer1.Bindings.Clear;
IdHTTPServer1.DefaultPort:= 8000;
IdHTTPServer1.Bindings.Add.IP := '127.0.0.1';
//启动服务器
IdHTTPServer1.Active := True;

procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
memo1.Lines.Add(ARequestInfo.Document) ;
memo1.Lines.Add(arequestinfo.Params.Values['t1']) ;
memo1.Lines.Add(arequestinfo.Params.Values['t2']);
end;

IE浏览器输入:http://127.0.0.1:8000/test?t1=china&t2=cxg

中间件执行效果图:

上面是通过HTTP的GET方法调用中间件的方法和传递参数,同样,HTTP的POST也可以。

寥寥数行,就能实现一个超级无敌简单的WEBSERVICE 中间件。不知道诸位看出来了,这么简单的中间件却有一个灵活的地方:它的数据序列格式可以是TEXT、JSON、XML或者BIN等。

http://www.cnblogs.com/hnxxcxg/p/3395524.html
------------------------------------------------------------------
我仿照了 这个教程。 结果没反应,帮忙看下 问题出在哪里。 多谢老师

你那个是实现webservice的,有啥用,还得apache
你就用idhttpserver然后实现一个简单的http服务器,内嵌一个html页面,可以post数据到你的服务器上,idhttpserver响应post消息并保存到当前目录下就ok了

IdHttpServer实现webservice(130篇DataSnap文章)的更多相关文章

  1. 开博客这么久以来,第一篇技术文章,python与c的接口对接

    在博客园开博客已经有了蛮长时间了,但是从来只是看别人的文章,自己却从未写过一篇技术文章,深表惭愧.内心还是希望能够给大家提供一些帮助的,希望这第一篇技术博客,能够给大家一些帮助.闲话少叙,开始正文. ...

  2. C++语言,统计一篇英文文章中的单词数(用正则表达式实现)

    下面的例子展示了如何在C++11中,利用regex_search()统计一篇英文文章中的单词数: #include <iostream> #include <regex> #i ...

  3. IdHttpServer实现webservice

    IdHttpServer实现webservice   朋友有个项目,通信协议使用HTTP,数据序列使用BIN(二进制).他不知道要选用何种技术方案. REST webservice是http+json ...

  4. SAP成都研究院2018年总共87篇技术文章合集

    2018年很快就要结束了.Jerry在2017年年底准备开始写这个公众号时,给自己定的目标是:2018年至少保证每周发布一篇高质量的文章.如今2018年就快过去了,高质量与否需要大家来反馈,至少从量上 ...

  5. 跟我学SpringCloud | 终篇:文章汇总(持续更新)

    SpringCloud系列教程 | 终篇:文章汇总(持续更新) 我为什么这些文章?一是巩固自己的知识,二是希望有更加开放和与人分享的心态,三是接受各位大神的批评指教,有任何问题可以联系我: inwsy ...

  6. 【Jmeter】他人总结篇链接(共八篇相关文章)

    [Jmeter]他人总结篇链接(共八篇相关文章) https://blog.csdn.net/mu_wind/article/category/9029006

  7. MySQL优化篇系列文章(二)——MyISAM表锁与InnoDB锁问题

    我可以和面试官多聊几句吗?只是想... MySQL优化篇系列文章(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. 面试官:咦,小伙子,又来啦 ...

  8. WPF自定义控件与样式(15)-终结篇 & 系列文章索引 & 源码共享

    系列文章目录  WPF自定义控件与样式(1)-矢量字体图标(iconfont) WPF自定义控件与样式(2)-自定义按钮FButton WPF自定义控件与样式(3)-TextBox & Ric ...

  9. 关于DataTable的两篇基础文章

    DataTable有的时候还是很有用的.记录两篇不错的文章,当字典 1.http://blog.csdn.net/imagse/article/details/3085870 2.https://ms ...

随机推荐

  1. Filter学习

    在这之前一直对filter感到陌生,有点细思极恐的感觉--终于下定决心来学习一下,欢迎拍砖-- Filter的主要作用是实现对HttpServletRequest的预处理,也可以对HttpServle ...

  2. Ural 1001 - Reverse Root

    The problem is so easy, that the authors were lazy to write a statement for it! Input The input stre ...

  3. iOS5.1下emoji表情显示方框的解决办法

    在iOS5.1的部分设备上,emoji表情无法正常显示.我测试了一下,iOS5.1(9B176 for iPhone 4)无法正常显示emoji,全部是方框iOS5.1(9B179 for iPhon ...

  4. ios 判断,qq,银行卡,手机号,邮编,生日,数字,字符串,护照, email

    http://blog.csdn.net/dyllove98/article/details/8635079 IdentifierValidator.h // //  IdentifierValida ...

  5. c++ 重载,覆盖,重定义

    写的不是很明白,后来又重新整理过了,在: http://www.cnblogs.com/iois/p/4986790.html 函数重载(Function Overloading) C++允许同一范围 ...

  6. 高级UIKit-07(AVAudioPlayer)

    [day09-1-AVAudioPlayer]:播放音乐案例 实现多媒体需要准备以下两点: 需要引入一个框架AVFoundation.framework 然后引入#import <AVFound ...

  7. java组装json和提取一个json的例子

    package jsonparsed; import net.sf.json.JSONException; import net.sf.json.JSONObject; import net.sf.j ...

  8. 高级特性(8)- JavaBean构件

    8.1 为何使用Bean8.2 编写Bean的过程8.3 使用Bean构造应用程序 8.3.1 将Bean打包成JAR文件 8.3.2 在开发环境中组合Bean8.4 Bean属性与事件的命名模式8. ...

  9. webservice asmx 无法序列化接口 System.Collections.Generic.IList

    转载自:http://www.cnblogs.com/chenhuzi/p/4178194.html 今天有位同事在方法里加了一个IList<entity> 的返回值,也没有测试,直接发布 ...

  10. Java基础02 方法与数据成员

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在Java基础01 从HelloWorld到面向对象,我们初步了解了对象(obje ...