开发者社区> xalion> 正文

使用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 程序,真机运行效果如下。

 

 

好了。

 

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云香港地域服务器访问延迟丢包的原因及解决方法
阿里云提供中国香港地域云服务器,但是香港节点服务器通过公网IP访问其他国家和地区的云服务器ECS会有较高访问延迟,极限情况下可能会产生丢包
1855 0
浏览器访问服务器过程|学习笔记
快速学习浏览器访问服务器过程
193 0
IDEA中启动服务器和访问项目
IDEA中启动服务器和访问项目
166 0
解决SpringBoot项目部署到服务器后访问Tomcat后404,无法访问Controller
解决SpringBoot项目部署到服务器后访问Tomcat后404,无法访问Controller
48 0
关于微信企业付款到零钱X509Certificate2读取证书信息,发布到服务器访问不到的解决方案
关于微信企业付款到零钱X509Certificate2读取证书信息,发布到服务器访问不到的解决方案
98 0
练习将maven项目打成war包放在linux服务器中,进行访问
第一次使用云服务器,练习将maven项目打成war包放在linux服务器中,进行访问。 这是阿里云的投稿活动,经过自己的尝试对阿里云服务器使用更加熟悉,阿里云使用方便,对学生也十分良心~让我学到了一些服务器的知识,祝阿里云团队蒸蒸日上~
193 0
WordPress安装后出现,浏览器访问服务器 IP 出现`建立数据库连接时出错`,错误信息
WordPress安装后出现,浏览器访问服务器 IP 出现`建立数据库连接时出错`,错误信息
87 0
Invalid Host header 服务器域名访问出现的问题
Invalid Host header 服务器域名访问出现的问题
1085 0
【阿里云】在Windows系统上用FileZilla访问阿里云Linux服务器
【阿里云】在Windows系统上用FileZilla访问阿里云Linux服务器
58 0
+关注
xalion
delphi 专家,熟悉Delphi,Oracle,Sqlserver Web,Android,IOS,Javascript。企业信息化建设。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
网站/服务器取证 实践与挑战
立即下载
固守服务器的第一道防线——美联集团堡垒机的前世今生
立即下载
机器学习在大规模服务器治理复杂场景的实践
立即下载