delphi D10.X 生成WebService接口介绍

2023-10-08 14:59

本文主要是介绍delphi D10.X 生成WebService接口介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

WebService是一种跨编程语言和跨操作系统平台的远程调用技术。他是基于http的soap协议传输数据 webservice=soap=http+xml,webservice协议就是有http+xml组成的,其中xml中会用到wsdl,而wsdl是描述语言xml中的一种格式。

WebService交互的过程就是,WebService遵循SOAP协议通过XML封装数据,然后由Http协议来传输数据。

这是一种很早就出现的数据交互技术,现在的系统中很少再使用到,在用的多数是原有系统沿用下来的。

当年使用D7的时候,就做过WebService接口,现在遇到这样接口的系统真的不多,但确实也还是有的,所以把Delphi下D10.X生成接口代码的方法定下来。

使用向导

Delphi在生成WebService接口上非常的方便,所有工作都由系统帮助处理完成。在IDE上,根据以下选择菜单会启动导入WSDL向导:

启动向导

方式一:

Component --> Import WSDL
在这里插入图片描述

方式二:

File --> New --> Other --> Delphi Projects --> Web --> WSDL Importer
在这里插入图片描述

注意:从文件>新建>其他 启用的WSDL导入向导程序需要先创建一个应用程序,然后才能激活该命令,但是从组件菜单调用的WSDL导入向导程序允许您在创建应用程序之前运行向导。

使用此向导可以导入描述Web Service的WSDL文档或XML模式。导入WSDL文档或XML模式后,向导将生成使用远程接口对象(THTTPRIO)在这些Web服务上调用所需的所有接口和类定义。您还可以告诉向导生成可完成创建Web Service应用程序所需的框架代码(例如,如果要实现WSDL文档中已定义的Web Service)。

WSDL设置页面

这是启动向导的第一个页面。
在这里指定要导入的WSDL文档的URL(或选择一个已存储的URL),并填写用于访问文档的凭据(用户名,密码和代理)。
在这里插入图片描述

项目说明
Location of WSDL File or URL输入WSDL文件名或发布文档的URL。单击编辑框旁边的省略号按钮以浏览文件位置。输入文件名后,您可以单击“ Next”按钮转到“ SOAP版本”页面。
User Name如果WSDL文档在需要身份验证的安全服务器上,请指定要使用的用户名。
Password指定当WSDL文档位于需要身份验证的安全服务器上时与用户名一起使用的密码。
Proxy为必须将请求转发到“ Web服务导入”对话框的“源”页面上指定的URL的所有代理服务器指定主机名。

通常情况下后面三项不需要填写,第一项通常会以“?wsdl”结束。

SOAP版本设置页面

在这个设置项页面,允许您指定WSDL文档使用的SOAP版本(1.1或1.2),或选择可用的最新版本。请注意,服务可以同时支持1.1和1.2。为了避免版本不匹配(可能导致生成错误的源代码),通常应选择“ 自动SOAP版本控制(Automatic SOAP versioning)”选项。
在这里插入图片描述
您可以选择以下选项之一:

项目说明
Automatic SOAP versioning允许您根据要支持的SOAP版本选择要导入的WSDL中描述的SOAP服务。如果同时允许使用1.1和1.2版本,则该自动生成支持SOAP 1.2。
Process only WSDL Binding extensions for the SOAP 1.1 Protocol该选项仅使用SOAP 1.1协议与服务进行通信。
Process only WSDL Binding extensions for the SOAP 1.2 Protocol该选项仅使用SOAP 1.2协议与服务进行通信。

说明:假设WSDL描述了每个已定义服务支持的SOAP版本:

  • CreditCardIssueService SOAP 1.1

  • CreditCardVerifyService SOAP 1.1、1.2

  • CreditCardRevokeService SOAP 1.2
    如果在“ SOAP版本”页面上选择“ 自动SOAP版本控制 ”,则将导入以下服务:

  • CreditCardIssueService SOAP 1.1

  • CreditCardVerifyService SOAP 1.2

  • CreditCardRevokeService SOAP 1.2
    即,没有导入CreditCardVerifyService的SOAP 1.1版本。

如果选择“ 仅使用SOAP 1.1协议”,那么将导入以下服务:

  • CreditCardIssueService SOAP 1.1
  • CreditCardVerifyService SOAP 1.1
    也就是说,省略了CreditCardRevokeService,因为它仅支持SOAP 1.2。

如果选择“仅使用SOAP 1.2协议”,那么将导入以下服务:

  • CreditCardVerifyService SOAP 1.2
  • CreditCardRevokeService SOAP 1.2
    也就是说,省略了CreditCardIssueService,因为它仅支持1.1。

选择好协议版本后,单击“ 下一步”转到“ WSDL导入选项”页面。

WSDL导入选项页面

使用此向导页面来配置向导生成代码以表示WSDL文档中定义的方式。
在这里插入图片描述
选择下面描述的任何选项。通常应使用默认选项,因为默认选项提供了导入WSDL文档的最安全方法。

项目说明
Generate verbose information about types and interfaces如果启用此选项,则WSDL导入器将生成有关类型名称空间,服务样式,绑定名称以及其他各种WSDL公开数据的信息。
One out parameter is return value选中后,导入程序会将具有单个输出消息的操作映射到以输出消息为返回值的函数中。如果未选中此选项,则将输出消息映射到输出参数。
Generate server implementation instead of client implementation选中后,导入程序将为导入的接口生成实现类。在编写实现已在WSDL文档中定义的Web Service的服务器时,请使用此选项。
Unwind Literal Params在文档文字编码中,Web服务未描述操作。相反,它描述了两个记录,一个记录提供了预期的输入,一个记录了输出。选中“展开文字参数”后,导入程序会将这两个记录转换为方法调用。
Emit Literal Types在文档文字编码中,Web服务未描述操作。相反,它描述了两个记录,一个记录提供了预期的输入,一个记录了输出。如果选中了“生成文字类型”,则导入器将为这两个记录生成类型定义,即使将它们转换为方法调用(即,即使选中了“展开文字参数”也是如此)。
Map String to WideString选中后,导入程序会将所有字符串类型映射到WideString值。取消选中时,导入程序将改用字符串类型。可能需要WideString值来处理使用扩展字符的值。如果字符串值不使用扩展字符,则使用字符串类型会更有效。
Generate destructors for remotable types选中后,导入程序将在代表类型的类上生成析构函数。这些析构函数释放类型为类或类数组的所有嵌套成员。生成的析构函数简化了释放表示类型的类的实例时必须执行的工作,因为您无需显式释放也使用类表示可远程化类型的类成员。
Generate warning comments选中后,导入程序会将警告消息添加到其放在生成文件顶部的注释中。这些警告描述了一些问题,例如,在检查了“忽略架构错误”时WSDL文档中的无效类型定义,在检查了“展开文字参数”时展开文字参数时遇到的问题,等等。
Map pure collections to wrapper class types选中此选项以使WSDL导入器能够将导入的数组类型映射到包装器类。此选项主要提供给C ++ Builder,在C ++ Builder中,数组类型不能直接映射到WSDL数组类型,因此需要包装器收集类。
Do not emit unused types如果选中此选项,则WSDL导入器不会为WSDL文档中声明的类型生成代码,但不会在任何公开的Service中使用。请注意,类可能不遵循此规则,因为Service可能会返回派生类的实例,在该实例中应具有基类。在这种情况下,将生成基类和派生类的代码。
Validate Enumeration members选中此选项以确保WSDL导入器在生成枚举成员时使用全局符号列表。此选项可防止在WSDL文档中声明的枚举类型的枚举成员之间发生名称冲突。从Delphi 2009开始,我们建议您不要取消选中此选项。
Import Fault Types选中此选项可将WSDL导入器进程类型标记为Fault。
Import Header Types检查以使WSDL导入器能够处理标记为标题的类型。
Generate interface GUIDs using COM API选中此项以使WSDL导入器能够在每次导入服务时分配唯一的GUID。如果禁用此选项,则每次WSDL导入程序为该服务生成代码时,为每个服务生成的GUID都将保持不变。在大多数情况下,建议禁用此选项。
Process included and imported schemas选中此选项以使WSDL导入器过程包含和导入模式。
Generate class aliases as class types选中此选项以使WSDL导入器生成类类型而不是弱别名。此选项可确保生成的别名类与基本类型具有不同的RTTI(运行时类型信息)。
Allow out parameters此选项控制是否将WSDL进口商生成使用方法进行返回SOAP消息的多个部分时的参数。如果禁用此选项,则不会生成out参数。WSDL导入器为多部分SOAP消息生成包装器类。
Use Setters and Getters for properties默认情况下,WSDL导入器会生成直接映射到所生成类中的字段的属性。通过启用此选项,您可以强制WSDL导入器改为生成setter和getter方法。
Process nillable and optional elements选中此选项以使WSDL导入器生成有关可选属性和可设置属性的相关信息。SOAP运行时使用此信息来允许某些属性为零。
Use TXSString for simple nillable typesWSDL标准允许在C ++中用Delphi或NULL将简单类型设为nil,而Delphi和C ++则不允许。选中此选项,以使WSDL导入程序通过使用包装类的实例来克服此限制。
Generate scoped enumerations选中后,将生成作用域枚举。如果WSDL文档包含定义相同名称的值的不同枚举,请选中此选项。

最后,在“ WSDL导入选项”页面上单击完成,以继续进行源代码生成。


欢迎光顾本人小店:(https://shop63778938.taobao.com/)
小店也提供delphi方面其他技术支持、定制开发。

现在就进店看看

大家有什么不清楚的,可以给我留言讨论
以上信息对您有用的话请点赞收藏,就下面这行

这篇关于delphi D10.X 生成WebService接口介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/166103

相关文章

java中的Supplier接口解析

《java中的Supplier接口解析》Java8引入的Supplier接口是一个无参数函数式接口,通过get()方法延迟计算结果,它适用于按需生成场景,下面就来介绍一下如何使用,感兴趣的可以了解一下... 目录1. 接口定义与核心方法2. 典型使用场景场景1:延迟初始化(Lazy Initializati

Java使用Spire.Barcode for Java实现条形码生成与识别

《Java使用Spire.BarcodeforJava实现条形码生成与识别》在现代商业和技术领域,条形码无处不在,本教程将引导您深入了解如何在您的Java项目中利用Spire.Barcodefor... 目录1. Spire.Barcode for Java 简介与环境配置2. 使用 Spire.Barco

SpringBoot集成iText快速生成PDF教程

《SpringBoot集成iText快速生成PDF教程》本文介绍了如何在SpringBoot项目中集成iText9.4.0生成PDF文档,包括新特性的介绍、环境准备、Service层实现、Contro... 目录SpringBoot集成iText 9.4.0生成PDF一、iText 9新特性与架构变革二、环

requests处理token鉴权接口和jsonpath使用方式

《requests处理token鉴权接口和jsonpath使用方式》文章介绍了如何使用requests库进行token鉴权接口的处理,包括登录提取token并保存,还详述了如何使用jsonpath表达... 目录requests处理token鉴权接口和jsonpath使用json数据提取工具总结reques

idea-java序列化serialversionUID自动生成方式

《idea-java序列化serialversionUID自动生成方式》Java的Serializable接口用于实现对象的序列化和反序列化,通过将对象转换为字节流来存储或传输,实现Serializa... 目录简介实现序列化serialVersionUID配置使用总结简介Java.io.Seripyth

python调用dubbo接口的实现步骤

《python调用dubbo接口的实现步骤》本文主要介绍了python调用dubbo接口的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录 ​​其他实现方式与注意事项​​ ​​高级技巧与集成​​用 python 提供 Dubbo 接口

Java中的随机数生成案例从范围字符串到动态区间应用

《Java中的随机数生成案例从范围字符串到动态区间应用》本文介绍了在Java中生成随机数的多种方法,并通过两个案例解析如何根据业务需求生成特定范围的随机数,本文通过两个实际案例详细介绍如何在java中... 目录Java中的随机数生成:从范围字符串到动态区间应用引言目录1. Java中的随机数生成基础基本随

Java中接口和抽象类的异同以及具体的使用场景

《Java中接口和抽象类的异同以及具体的使用场景》文章主要介绍了Java中接口(Interface)和抽象类(AbstractClass)的区别和联系,包括相同点和不同点,以及它们在实际开发中的具体使... 目录一、接口和抽象类的 “相同点”二、接口和抽象类的 “核心区别”关键区别详解(避免踩坑)三、具体使

C#自动化生成PowerPoint(PPT)演示文稿

《C#自动化生成PowerPoint(PPT)演示文稿》在当今快节奏的商业环境中,演示文稿是信息传递和沟通的关键工具,下面我们就深入探讨如何利用C#和Spire.Presentationfor.NET... 目录环境准备与Spire.Presentation安装核心操作:添加与编辑幻灯片元素添加幻灯片文本操

Redis的安全机制详细介绍及配置方法

《Redis的安全机制详细介绍及配置方法》本文介绍Redis安全机制的配置方法,包括绑定IP地址、设置密码、保护模式、禁用危险命令、防火墙限制、TLS加密、客户端连接限制、最大内存使用和日志审计等,通... 目录1. 绑定 IP 地址2. 设置密码3. 保护模式4. 禁用危险命令5. 通过防火墙限制访问6.