使用delphi 开发多层应用(十九) ios通过soap 访问kbmmw服务器

简介: 随着delphi XE4 的推出,开始真正意义上支持ios 的开发,由于目前kbmmw 还不完全支持ios 的开发,因此 无法直接使用kbmmw 的客户端访问kbmmw 的服务器(虽然kbmmw 也提供了C 的客户端,可以使用xcode连接 kbmmw的C 客户端来访问kbmmw 服务器,但是功能有限,而且要熟悉xcode),对于急着想在ios 使用kbmmw 服务的同学,可以先使用kbmmw 的webservice 方式访问kbmmw 服务器。

      随着delphi XE4 的推出,开始真正意义上支持ios 的开发,由于目前kbmmw 还不完全支持ios 的开发,因此

无法直接使用kbmmw 的客户端访问kbmmw 的服务器(虽然kbmmw 也提供了C 的客户端,可以使用xcode连接

kbmmw的C 客户端来访问kbmmw 服务器,但是功能有限,而且要熟悉xcode),对于急着想在ios 使用kbmmw

服务的同学,可以先使用kbmmw 的webservice 方式访问kbmmw 服务器。

  下面我就介绍以下如何在ios 访问kbmmw 服务器

还是我们的上面的服务端程序,需要修改几个地方:

TkbmMWTCPIPIndyServerTransport 的端口设成http 的标准接口80,

streamFormat 设成 SOAP

verifyTransfer 设成 False ,以便兼容不同语言的客户端。

另外 需要在Params 里面加一句:

KBMMWSOAPVIAHTTP=1

 

服务器端的其他不用动,按原来的方式注册服务:

procedure TForm1.FormCreate(Sender: TObject);
var
  sd:TkbmMWCustomServiceDefinition;
begin

   sd:=kbmMWServer1.RegisterService(Txalionsrv,false);
 
end;

 编译运行,ok. 服务器端就完成了。

 

客户端由于不能使用kbmmw, 只能使用标准的delphi 功能。

先建立一个标准的ios 空白文件。

放置一个label,一个memo,一个按钮。

然后我们要导入WSDL.

kbmmw 提供了WSDL 文件,文件名为kbmMW.wsdl.在kbmmw 源码的目录。

我们在WSDL 导入器里面选择这个文件,如图:

一路点下去,直到完成。就会生产一个kbmmw.pas.

把这个kbmmw 加入到uses 里面。

然后在button 点击事件里面写入代码

var
   server:IProcessRequestSOAPPort;
   req:ProcessRequest;
   res:TkbmMWSOAPResponse;
   v:variant;
begin
      server:=GetIProcessRequestSOAPPort(false,
            'http://127.0.0.1/server1',nil);
            req:=ProcessRequest.Create;
         try
          // Setup request.
                  req.ServiceName:='XALION_SRV';
                  req.ServiceVersion:='';
                  req.StateID:=-1;
                  req.Func:='sumall';


                  v:=VarArrayCreate([0,1],varVariant);
                  v[0]:=100;
                   req.Args:=v;

                  // Call app server.
                  res:=server.ProcessRequest(req);
              try
            // Check response.
                  Label1.Text:=res.StatusText;
                  if res.StatusCode=0 then // OK
                  begin
                  Memo1.Lines.Add(res.Result);
                  end;
                finally
               res.Free;
            end;
            finally
            req.Free;
          end;
end;

 然后编译ios 程序,真机运行效果如下。

 

 

好了。

 

 

 

目录
相关文章
|
2月前
|
弹性计算 网络安全 数据安全/隐私保护
ECS热门应用 | 解决Guestosssh异常
通过ECS实例快速发现操作系统内部的问题,并给出对应的修复方案。
129299 5
|
26天前
|
安全 数据安全/隐私保护 虚拟化
iOS应用加固方案解析:ipa加固安全技术全面评测
iOS应用加固方案解析:ipa加固安全技术全面评测
36 3
|
1月前
|
弹性计算 人工智能 物联网
挖掘阿里云ECS的潜力:创意应用和未来可能性
在云厂商中,我觉得开发者更信赖阿里云的云产品,而且随着阿里云最近宣布云产品降价的消息,会有更多的开发者和企业选择阿里云的云产品。这里拿阿里云的云服务器来做说明,阿里云的云服务器ECS为用户提供了强大的计算资源和灵活的扩展性,使其成为搭建各种有趣和创意应用的理想平台。除了已知的小游戏、小程序和个人网盘等应用案例之外,本文还会进一步探讨ECS在特定场景下的实践经验,并挖掘其在其他领域的潜力,为大家带来更多创意和启发。
556 3
挖掘阿里云ECS的潜力:创意应用和未来可能性
|
1月前
|
运维 监控 安全
应用研发平台EMAS常见问题之sophix ios flutter热更新如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
77 0
|
1月前
|
弹性计算 网络安全 文件存储
ECS热门应用 | 安装家用内网穿透服务
使用云服务器ECS,让家庭网络可以被外部网络访问。不在家时,也可以读取备份资料。
|
1月前
|
开发框架 Java .NET
JavaWeb概念、应用、服务器
静态网站是指在服务器上预先准备好的网页内容,用户访问时服务器直接将这些静态页面发送给用户浏览器,没有经过额外的处理或数据库查询。
12 0
|
1月前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
47 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
|
安全 测试技术 调度
iOS开发多线程篇-NSThread
上篇我们学习了iOS多线程解决方式中的NSOperation,这篇我主要概况总结iOS多线程中NSThread的解决方式和基本用例
|
缓存 程序员 调度
iOS开发多线程篇-GCD
上篇文章介绍了多线程是什么、线程的进程的区别,在这篇文章中,主要介绍iOS开发中多线程GCD的使用方式和注意事项,同时会给出几种多线程的案例。
|
调度 iOS开发
iOS开发多线程篇-概述
iOS开发多线程篇<概述>

热门文章

最新文章