zoukankan      html  css  js  c++  java
  • uniGUI试用笔记(十三)调用WebService

    今天尝试用uniGUI做Web服务器,调用应用服务器的WebService,遇到些问题记录下来备忘。

    1、对WebService的调用同一般App程序,只是注意如果WebService的执行时间较长,会报超时错误,此时需要处理:

    (1)在DataModule上放一个THTTPRIO控件;

    (2)在数据模板创建时,设置THTTPRIO控件的HTTPWebNode属性的超时时间,代码如下:

    procedure TUniMainModule.UniGUIMainModuleCreate(Sender: TObject);
    begin
      //连接超时时间(ms)
      HTTPRIO1.HTTPWebNode.ConnectTimeout := 30000;
      //接收超时时间(ms)
      HTTPRIO1.HTTPWebNode.ReceiveTimeout := 30000;
      //发送超时时间(ms)
      HTTPRIO1.HTTPWebNode.SendTimeout := 30000;
    end;

    (3)调用WebService方法时,不使用缺省创建的THTTPRIO,而是数据模板上的控件,代码如下:

    function TUniMainModule.GetString: string;
    var
      iw : IWebServiceTest;
    begin
      //创建WebService接口
      iw := GetIWebServiceTest(
       False, 
       '', 
       HTTPRIO1);//窗体上的控件
      //调用方法
      Result := iw.SIService('');
    end;

    2、uniGUI服务器运行时,调用WebService报“MSXML未安装”的错误,开始以为是64位和32位的问题,后来发现不是。正确理解是:Delphi内部WebService调用时使用了MSXML,而MSXML是COM对象,所以需要在程序启动时调用CoInitialize进行初始化,在uniGUI服务器中只需要设置服务数据模板的AutoCoInitilaize属性为True即可,代码如下:

    ServerModule.AutoCoInitilaize :=True;

    当然最好是在设计期直接更改属性即可。

  • 相关阅读:
    python中关于操作时间的方法(一):使用time模块
    size_t类型
    批量下载网络图片并zip打包
    遇到的java面试题
    jsp中button与submit的用法
    springmvc json字符串转化成json对象
    Cas 介绍及使用
    java中post时中文乱码
    mybatis使用generator生成对应的model、mapping配置文件、dao
    移动端接口:java写get方式访问数据(springmvc+spring。。。)
  • 原文地址:https://www.cnblogs.com/ChinaEHR/p/4488902.html
Copyright © 2011-2022 走看看