Delphi中WebService包含的组件解释(有7个)  
   (1) THTTPRIO-------:使用Http消息来调用远程使用SOAP的接口对象     (2) THTTPReqResp---:给服务器发送一个SOAP消息, THTTPReqResp在可调用接口上执行一个方法请求.    
   (3) TOPToSoapDomConvert ----:TOPToSoapDomConvert处理Soap方法请求的组合与分发  
   (4) TSoapConnection:TSoapConnection在客户端的多层数据库应用中创建并维护客户端和作为WebService 的远程应用服务器间的连接     (5) THTTPSoapDispatcher -----:通过将Soap消息转发给调用者,THTTPSoapDispatcher对Soap消息做出响应.  
   (6) TWSDLHTMLPublish -----:TWSDLHTMLPublish发布描叙webService应用的Wsdl文档 
    (7) THTTPSoapPascalInvoker -----:THTTPSoapPascalInvoker解释Soap的请求信息,并执行相应的可调用接口.

Webservice肯定有wsdl地址描述

一、服务端

1、File>New>WebService>Soap Server Application

2、Stand-alone vcl Application>VCL Application/FireMonkey Application我选VCL

3、8080 Test Port

4、Add New WebService  Service Name :soapTest

5、Add Function GetTime

soapTestIntf.pas

function echoEnum(const Value: TEnumTest): TEnumTest; stdcall;
    function echoDoubleArray(const Value: TDoubleArray): TDoubleArray; stdcall;
    function echoMyEmployee(const Value: TMyEmployee): TMyEmployee; stdcall;
    function echoDouble(const Value: Double): Double; stdcall;

soapTestImpl.pas

function TsoapTest.echoEnum(const Value: TEnumTest): TEnumTest; stdcall; begin   { TODO : Implement method echoEnum }   Result := Value; end;

function TsoapTest.echoDoubleArray(const Value: TDoubleArray): TDoubleArray; stdcall; begin   { TODO : Implement method echoDoubleArray }   Result := Value; end;

function TsoapTest.echoMyEmployee(const Value: TMyEmployee): TMyEmployee; stdcall; begin   { TODO : Implement method echoMyEmployee }   Result := TMyEmployee.Create; end;

function TsoapTest.echoDouble(const Value: Double): Double; stdcall; begin   { TODO : Implement method echoDouble }   Result := Value; end;

String TGetTimeImpl::GetTime(void)
{
 String str;
 str = Now();

}

Application后生成3个组件WebModuleUnit1.pas
一个是调用者组件:THTTPSoapPascalInvoker:完成Soap消息和....
一个是调度者组件:THTTPSoapDispatcher:自动响应送入的soap消息,并且把他们传递给调用者,可以使用他的WebDispatch属性来识别应用程序响应的http请求.
      包括设置PathInfo属性来指明指向应用程序的任何URL的路径部分,设置MethodType属性来指明请求消息的方法头.
一个是WSDL发布者:TWSDLHTMLPublisher:WSDL发布者发布描叙接口以及如何调用他们的wsdl文档,使用非delphi编写的客户端程序也可以调用WebService应用程序.
 

用open Browse打开就成功了

http://localhost:8080/

  Project25 - PortTypes:
   
 
  • IsoapTest [WSDL]

    • echoEnum
    • echoDoubleArray
    • echoMyEmployee
    • echoDouble
    • sum
    • GetTime
 
  • IWSDLPublish [WSDL]

      Lists all the PortTypes published by this Service
    • GetPortTypeList
    • GetWSDLForPortType
    • GetTypeSystemsList
    • GetXSDForTypeSystem
  WSIL:  Link to WS-Inspection document of Services here
   

二、客户端 Windows调用

方法一

1、New VCL Application

2、Add HTTPRIO Component

3、IDE Menu Component>Import WSDL XE下目前这一步到url地址不成功,导入服务段保存的wsdl文件成功了

导入后系统生成IsoapTest1.pas文件

调用sum函数

HTTPRIO1.URL := 'http://127.0.0.1:8080/'; 这样报错

HTTPRIO1.URL := 'http://127.0.0.1:8080/soap/IsoapTest';
//  HTTPRIO1.URL:='http://localhost:8080/soap/IsoapTest';

这两种方式都可以

Caption := FloatToStr((HTTPRIO1 as IsoapTest).sum(3, 6));

procedure TForm25.btnTimeClick(Sender: TObject);
begin
  HTTPRIO1.URL := 'http://127.0.0.1:8080/soap/IsoapTest';
  Caption := (HTTPRIO1 as IsoapTest).GetTime;
end;

返回服务器的时间了

方法二

1、File>New>Other>WebService>Stand alone Application>VCL Application> WSDL Importer ... >Next>Finish

2、Add Form ,Add HTTPRIO Component

三、客户端android调用

FireMonkey是跨平台,支持windows、android、ios

方法一、

1、New FireMonkey Application

2、IDE Menu Component >WSDL

3、输入URL地址OK啦

方法二、

1、File>New>Other>WebService>Stand alone Application>FireMonkey  Application> WSDL Importer ... >Next>Finish

2、Add Form ,Add HTTPRIO Component

2019.4.22

本机开发的Webservice,用2345浏览器打开就报错,服务端EXE闪退,用火狐浏览器打开地址正常。

WebService 服务端客户端 实例 HTTPRIO (一) SOAP WSDL的更多相关文章

  1. eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(二)

    eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(二) 接上篇博客,本篇博客主要包含两个内容: 4.使用Android studio创建webservice客 ...

  2. eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(一)

    eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(一) 本篇博客主要包含五个内容: 1.CXF换将搭建以及eclipse配置CXF. 2.eclipse创建w ...

  3. JAVA WEBSERVICE服务端&客户端的配置及调用(基于JDK)

    前言:我之前是从事C#开发的,因公司项目目前转战JAVA&ANDROID开发,由于对JAVA的各种不了解,遇到的也是重重困难.目前在做WEBSERVICE提供数据支持,看了网上相关大片的资料也 ...

  4. DelphiXE7中创建WebService(服务端+客户端)

    相关资料: http://www.2ccc.com/news/Html/?1507.html http://www.dfwlt.com/forum.php?mod=viewthread&tid ...

  5. DelphiXE7中创建WebService(服务端+客户端) good

    相关资料:http://www.2ccc.com/news/Html/?1507.html DelphiXE7新建WebService具体操作:1.打开“DelphiXE7”->“File”-& ...

  6. 一个PHP写的简单webservice服务端+客户端

    首先是服务端,服务端有一个主要的class组成:apiServer.php <?php /** * apiServer.php * * webservice主类 * * @filename ap ...

  7. [精华][推荐]CAS SSO单点登录服务端客户端实例

    1.修改server.xml文件,如下: 注意: 这里使用的是https的认证方式,需要将这个配置放开,并做如下修改: <Connector port="8443" prot ...

  8. 基于JAX-WS的Web Service服务端/客户端 ;JAX-WS + Spring 开发webservice

    一.基于JAX-WS的Web Service服务端/客户端 下面描述的是在main函数中使用JAX-WS的Web Service的方法,不是在web工程里访问,在web工程里访问,参加第二节. JAX ...

  9. myeclipse-建立webservice服务端和客户端

    一.建立webservice服务端: 1.新建一个web service project,名称为webservice_server截图如下,点击finish. 2.选择工程,点击右键,选择new-&g ...

随机推荐

  1. test20180919 递归问题

    题意 定义 \[ f(n)=\left\{ \begin{array}{} 1 & n=1\\ f(n-f(f(n-1)))+1 & n>1 \end{array} \right ...

  2. python 命名空间和作用域

    这是python的难点和特点, 有很多的和c/cpp不一样的地方.  它的灵活易用性造成不习惯之处. refer to: http://blog.csdn.net/cc7756789w/article ...

  3. 使用docusaurus 搭建开发&&api && 博客站点

    对于日常的开发系统以及产品一个简单,方便的api&&文档网站可以七很大的作用 docusaurus 是facebook开源的文档管理框架,使用它我们可以快速的创建专业. 完备的文档站点 ...

  4. knowledge 开源知识管理系统

    knowledge 是一个不错的知识管理系统,基于markdown 我们可以方便的进行知识的标签 以及展示 使用docker-compose 运行 环境准备 docker-compose 文件 ver ...

  5. Python函数 dict()

    dict() 作用:dict() 函数用于创建一个字典.返回一个字典. 语法: class dict(**kwarg) class dict(mapping, **kwarg) class dict( ...

  6. java中String对象的存储位置

    public class Test { public static void main(String args[]) { String s1 = "Java"; String s2 ...

  7. hadoop最新版本介绍之dkhadoop版本选择

    Hadoop对于从事互联网工作的朋友来说已经非常熟悉了,相信在我们身边有很多人正在转行从事hadoop开发的工作,理所当然也会有很多hadoop入门新手.Hadoop开发太过底层,技术难度远比我们想象 ...

  8. hadoop大数据处理平台与案例

    大数据可以说是从搜索引擎诞生之处就有了,我们熟悉的搜索引擎,如百度搜索引擎.360搜索引擎等可以说是大数据技处理技术的最早的也是比较基础的一种应用.大概在2015年大数据都还不是非常火爆,2015年可 ...

  9. 【appium】根据xpath定位元素

    1. 背景 本文尝试使用的试验对象是SDK自带的NotePad应用实例,假设已经有两个Notes分别是“note1”和“note2”添加到Notepad上面,我们要做的就是尝试用xpath的方法来定位 ...

  10. IO测试工具之fio详解(转)

    http://www.cnblogs.com/raykuan/p/6914748.html 目前主流的第三方IO测试工具有fio.iometer和Orion,这三种工具各有千秋. fio在Linux系 ...