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;

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

  • 相关阅读:
    表操作之数据类型——日期类型
    cocos2dx tableView 的使用
    lua中的循环
    lua中 后端发过来的 按位表示值,在前端中需要处理的函数
    lua 打印表方法
    近况
    lua开发
    4)数据结构和算法学习_链表
    3)数据结构和算法学习_链表
    使用VsCode断点调试TS
  • 原文地址:https://www.cnblogs.com/ChinaEHR/p/4488902.html
Copyright © 2011-2022 走看看