当前位置:网站首页>gom登录器配置教程_谷歌浏览器如何使用谷歌搜索引擎
gom登录器配置教程_谷歌浏览器如何使用谷歌搜索引擎
2022-08-04 09:44:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
前面我们一直都讲了如何使用kbmmw smarthttpservice 给客户端提供REST 服务。主要都是返回给
浏览器访问的,如果我们使用delphi 开发桌面应用,如何使用这些服务呢?其实一切都不是问题,kbmmw 除了
有强大的smartservice,也有强大的smartclient 。
我们今天就在以前的smarthttpservice 加上TCP 访问功能,最大的好处就是根本都用动原来的服务代码。
首先我们在服务端,放一个kbmMWTCPServerTransport1。并设置其server 属性。
然后检查一下我们前面设置的服务函数
[kbmMW_Rest('method:$(service.xalionrest.helloworld.method=post), path:$(service.xalionrest.helloworld.path=helloworld)')]
// [kbmMW_Method] 注释了这个客户端就不能访问了
function HelloWorld:string;
[kbmMW_Rest('method:get, path:version')]
[kbmMW_Method]
function version:string;
[kbmMW_Method('EchoString')] // 回应输入的串
[kbmMW_Rest('method:get, path: ["echostring/{AString}","myechostring/{AString}" ]')]
[kbmMW_Auth('role:[SomeRole,SomeOtherRole], grant:true')]
function EchoString([kbmMW_Rest('value: "{AString}"')] const AString:string):string;
[kbmMW_Method]
[kbmMW_Rest('method:get, path: "cal/addnumbers"')]
function AddNumbers([kbmMW_Rest('value: "$arg1", required: true')] const AValue1:integer;
[kbmMW_Rest('value: "$arg2", required: true')] const AValue2:integer;
[kbmMW_Arg(mwatRemoteLocation)] const ARemoteLocation:string):string;注意 加了[kbmMW_Method] 这个属性,客户端就可以访问。
加了[kbmMW_Rest('method:get, path:version')] 保证使用REST 方式访问。
服务器端就好了,运行就可以了。
现在我们来做客户端,这个更简单
放上对应的控件,如图:记住要加上单元 kbmMWSmartClient,kbmMWSmartClient,
procedure TForm1.Button1Click(Sender: TObject);
var
c:IkbmMWSmartClient;
s:string;
begin
Transport.Host:=eIP.Text;
// 通过给定的transport来建立一个客户端
c:=TkbmMWSmartRemoteClientFactory.GetClient(Transport,'XALIONREST');
//调用服务器端的服务
s:=c.Service.EchoString('abc');
memo1.Lines.Add('EchoString(''abc'')='+ s );
s:=c.Service.version;
memo1.Lines.Add('version='+ s );
s:=c.Service.AddNumbers(34,7);
memo1.Lines.Add('AddNumbers(34,7)='+ s );
end;运行结果
全部正确。
这样我们就实现了kbmmw 服务器的 REST+TCP 双引擎。
再过几个小时2018年就过去了,在此我祝大家2019年元旦快乐,万事如意!
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/107108.html原文链接:https://javaforall.cn
边栏推荐
- Anton Paar Anton Paar Density Meter Hydrometer Repair DMA35 Performance Parameters
- HTB-Sense
- [Punctuality Atom STM32 Serial] Chapter 3 Development Environment Construction Excerpted from [Punctual Atom] MiniPro STM32H750 Development Guide_V1.1
- 超宽带UWB实时精准定位,短距离无缝交互应用,物联网厘米级精度方案
- 学习使用php把stdClass Object转array的方法整理
- 请问下Flink SQL如何写hologres分区表?我想要每天一个分区
- KubeDNS 和 CoreDNS
- 浅聊偏函数
- I am 37 this year, and I was rushed by a big factory to...
- 【正点原子STM32连载】第四章 STM32初体验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
猜你喜欢

参数优化。
![[Punctuality Atom STM32 Serial] Chapter 2 STM32 Introduction Excerpted from [Punctual Atom] MiniPro STM32H750 Development Guide_V1.1](/img/11/a97c9874a1c4b510e7ed9ec330a737.png)
[Punctuality Atom STM32 Serial] Chapter 2 STM32 Introduction Excerpted from [Punctual Atom] MiniPro STM32H750 Development Guide_V1.1

2022-08-03 第六小组 瞒春 学习笔记

TCP的四次挥手
![No module named 'flask_misaka' has been resolved [BUG solution]](/img/cc/e379d23a41330d2335dd192e16e821.png)
No module named 'flask_misaka' has been resolved [BUG solution]

leetcode经典例题——49.字母异位词分组

LeetCode中等题之旋转图像

2022 Cloud Native Computing代表厂商 | 灵雀云第三次入选Gartner中国ICT技术成熟度曲线报告

PD 源码分析- Checker: region 健康卫士

Interview at 14:00 in the afternoon, I came out at 14:08 with my head down, asking too much...
随机推荐
数据万象内容审核 — 共建安全互联网,专项开展“清朗”直播整治行动
leetcode动态规划经典例题——53.最大子数组和
[Punctuality Atom STM32 Serial] Chapter 4 STM32 First Experience Excerpted from [Punctual Atom] MiniPro STM32H750 Development Guide_V1.1
The difference between Mysql application log time and system time is eight hours
三层交换机配置MSTP协议详解【华为eNSP实验】
罗克韦尔AB PLC RSLogix5000中定时器指令使用方法介绍
Post-94 Byte P7 posted the salary slip: It's really good to make up for this...
请问下Flink SQL如何写hologres分区表?我想要每天一个分区
菲沃泰科创板上市:市值123亿 宗坚赵静艳夫妇身价76亿
How to restore the Youxuan database with only data files
陈春花发布声明,这场流量狂欢该到了收尾的时候
【正点原子STM32连载】第四章 STM32初体验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
并发编程之生产者和消费者问题
张朝阳对话俞敏洪:谈宇宙、谈焦虑、谈创业、谈退休、谈人生
v-model原理,在“radio”、“checkbox”、“select”、修饰符
KubeDNS 和 CoreDNS
XCTF-easy_Maze
双指针方法
TCP的四次挥手
函数防抖与函数节流