第十七章 创建Web客户端 - 其他调整

文章目录

  • 第十七章 创建Web客户端 - 其他调整
    • 其他调整
    • 使用生成的 `Web` 客户端类
    • 示例 1:使用使用包装消息的客户端
    • 示例 2:使用使用未包装消息的客户端

第十七章 创建Web客户端 - 其他调整

其他调整

如果 WSDL 未指定 Web 服务的位置,则 SOAP 向导不会指定 Web 客户端的 LOCATION 参数。这是一种罕见的情况。在这种情况下,编辑 Web 客户端类以包含 LOCATION 参数。例如:

Parameter LOCATION = "https://devsys:52773/csp/mysamples/GSOP.AddComplexWS.cls";

或者指定 Web 客户端实例的 Location 属性。

使用生成的 Web 客户端类

如上一节所述,生成 Web 客户端类后,通常不会编辑生成的类。相反,可以编写代码来创建该 Web 客户端的实例并提供客户端错误处理。在此代码中,执行以下操作:

  1. 创建 Web 客户端类的实例。
  2. 设置其属性。可以在此处控制以下项目:
  • Web 客户端的端点(它使用的 Web 服务的 URL)。要控制这一点,请设置 Location 属性,该属性会覆盖 Web 客户端类的 LOCATION 参数。
  • 指定代理服务器的设置。
  • 控制 HTTP 基本身份验证的设置。
  1. 根据需要调用Web客户端的方法。
  2. 执行客户端错误处理。
  3. (可选)检查 Web 客户端收到的 HTTP 响应,如本主题后面所述。

下面显示了终端中会话的一个简单示例:

GSOAP>set client=##class(Proxies.CustomerLookupServiceSoap).%New()GSOAP>set resp=client.GetCustomerInfo("137")GSOAP>w resp11@Proxies.CustomerResponseGSOAP>w resp.Name
Smith,Maria

示例 1:使用使用包装消息的客户端

在此示例中,我们为使用包装消息的 Web 客户端创建一个包装类。要使用前面显示的示例 GSOAPClient.AddComplex.AddComplexSoap,我们可以创建一个如下所示的类:

Class GSOAPClient.AddComplex.UseClient Extends %RegisteredObject
{ClassMethod Add(arg1 As ComplexNumber, arg2 As ComplexNumber) As ComplexNumber
{Set client=##class(AddComplexSoap).%New()//uncomment the following to enable tracing//set client.Location="https://devsys:8080/csp/mysamples/GSOP.AddComplexWS.cls"Set ans=client.Add(arg1,arg2)Quit ans 
}}

客户端应用程序将调用此方法来执行 Web 方法。

示例 2:使用使用未包装消息的客户端

在此示例中,我们为使用未包装消息的 Web 客户端创建一个包装类。要使用前面显示的示例 GSOAPClient.AddComplex.AddComplexSoap,我们可以创建一个如下所示的类:

Class GSOAPClient.AddComplexUnwrapped.UseClient Extends %RegisteredObject
{ClassMethod Add(arg1 As GSOAPClient.AddComplexUnwrapped.s0.ComplexNumber, 
arg2 As GSOAPClient.AddComplexUnwrapped.s0.ComplexNumber) 
As GSOAPClient.AddComplexUnwrapped.s0.ComplexNumber
{//create the Add messageSet addmessage=##class(GSOAPClient.AddComplexUnwrapped.s0.Add).%New()Set addmessage.a = arg1Set addmessage.b = arg2Set client=##class(AddComplexSoap).%New()//send the Add message to client and get responseSet addresponse=client.Add(addmessage)//get the result from the response messageSet ans=addresponse.AddResultQuit ans}}

该方法具有通常预期的签名;也就是说,它接受两个复数并返回一个复数。该方法创建 Web 客户端期望的消息。该消息的元素是两个复数。

正如所看到的,当 Web 客户端使用未包装的消息时,需要编写稍微多一些的代码来将用户友好形式的参数转换为 Web 客户端使用的消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/24551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 删除磁盘分区

1. 卸载分区 sudo df -h sudo umount {mp} 如果报target is busy,说明有进程在访问挂载点,通过fuser命令查看哪些进程在访问,(确保可删除后)删掉对应进程即可 fuser -mv {mp} 2. 删除分区 指定删除 删除part分区…

IngsollRang伺服拧紧轴控制器维修故障排查

【IngsollRang控制器故障排查】 在开始维修之前,请确保拧紧机已关闭并断开电源。然后,按照以下步骤进行故障排查: 1. 检查电源连接:确保拧紧机的电源线牢固连接,且电源插座正常工作。 2. 检查保险丝:如果电…

贪心算法-加油站

一、题目描述 二、解题思路 1.运动过程分析 这里需要一个油箱剩余油量的变量resGas,初始化resGas0;还需要一个标记从什么位置当做初始位置的startIdx,初始化startIdx0。 我们从数组下标idx0处开始向后遍历,初始时startIdx0&#…

java的核心机制:JVM

JVM(java virtual machine,java虚拟机):是一个虚拟的计算机,是java程序的运行环境。JVM具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。 JVM功能1:实现java程…

Unity DOTS技术(十三) ComponentSystem及JobComponentSystem

文章目录 一.ComponentSystem介绍二.JobComponentSystem 一.ComponentSystem介绍 1.继承ComponentSystem需要实现抽象OnUpdate() 2.与SystemBase不同,ComponentSystem不包含LambdaSingleJobDescription, 3.CompoentSystem的带代码都是在主线程上运行,不支持多线程. 4.并不能在…

网络编程之XDP技术介绍

一、简介 XDP:eXpress Data Path,快速数据面,听名字是不是很高大上。其实它就是一个快速处理Rx数据包的数据面技术。为什么现在对数据处理如此敏感?原因非常简单,随着网络的不断覆盖社会的各个层面,海量的…

发布自己的 npm 插件包:步骤与最佳实践

在 Node.js 的生态系统中,npm(Node Package Manager)是一个不可或缺的组成部分。npm 允许开发者创建、共享和使用各种库和插件。如果你有自己的 Node.js 插件或库,并且希望与全世界的其他开发者共享,那么发布到 npm 是…

android 编译源码添加日志打印

最近闲来无事,把源码编译一下,然后把这个源码编译到pixel3手机上,并且简单修改一下源码的网络请求,添加一些日志打印,堆栈打印,记录一下防止忘记 首先需要下载源码 下载对应源码对应的驱动 https://develop…

Docker 创建mysql用户

要在Docker中以root用户身份创建一个MySQL数据库(schema)并设置一个新用户xiaokkk,密码为123456,您需要先确保您的Docker容器正在运行,并且知道如何连接到它。以下是一步步的指南: 1. 连接到Docker中的MyS…

Rhino Linux 2024.1

Rhino Linux 2024.1的发布信息概述如下: 1. **开发更新**: - 由于开发者原因,开发进程曾一度停滞,但目前团队已起草了Rhino Linux宪法,重点在于社区参与。 - 组织结构的变化将在此次发布后不久生效。 - 社区…

JVM学习-详解类加载器(二)

双亲委派机制 双亲委派优势 避免类的重复加载,确保一个类的全局唯一性 Java类随着它的类加载器一起具备了一种带有优先级的层次关系,通过这种层次关系可以避免类的重复加载,当父类已经加载了该类,就没有必要子ClassLoader再加载…

无锡哲讯:引领半导体企业ERP革新,打造行业数字化先锋

在半导体行业,随着技术的不断进步和市场需求的日益增长,企业面临着激烈的竞争和复杂的管理挑战。ERP系统作为现代企业管理的核心工具,对于半导体企业而言,其作用不容小觑。无锡哲讯智能科技有限公司,凭借其在SAP ERP领…

图像编解码器在AI绘画中的革新作用

随着人工智能技术的飞速发展,AI绘画已经从一个简单的概念演变为一个充满创意与可能性的领域。在这场技术与艺术的融合中,图像编解码器扮演着至关重要的角色。它们不仅提升了AI绘画的质量和效率,还拓宽了艺术创造的边界。本篇博客将深入探讨图…

数据结构(树)

数据结构(树) 度:每一个节点的子节点数量 二叉查找树: 每一个节点上最多有两个子节点; 任意节点左子树上的值都小于当前节点; 任意节点右子树上的值都大于当前节点。 添加节点规则: 小的存左边&…

Unity与前端交互:深度解析与实战指南

Unity与前端交互:深度解析与实战指南 在现代游戏开发和跨平台应用中,Unity作为一款强大的游戏引擎,其与前端技术的交互能力显得尤为重要。本文将从四个方面、五个方面、六个方面和七个方面深入探讨Unity如何与前端进行交互,揭示其…

Postman 连接数据库 利用node+xmysql

1、准备nodejs环境 如果没有安装,在网上找教程,安装好后,在控制台输入命令查看版本,如下就成功了 2、安装xmysql 在控制台输入 npm install -g xmysql 3、连接目标数据库 帮助如下: 示例: 目标数据库…

UI前端交互的艺术:探索设计的四个维度、五个层面、六个要点与七大原则

UI前端交互的艺术:探索设计的四个维度、五个层面、六个要点与七大原则 在数字时代的浪潮中,UI前端交互设计如同一门深邃的艺术,既需要技术支撑,又需要设计灵感。它关乎用户体验,影响着产品的成败。那么,UI…

操作系统:进程的状态

进程三种的状态是什么? 运行:进程占有处理器正在运行的状态。进程已获得CPU,其程序正在执行。 就绪:进程具备运行条件,等待系统分配处理器以便运行的状态。当进程已分配到除CPU以外的所有必要资源后,只要…

HTML静态网页成品作业(HTML+CSS)—— 美食湘菜介绍网页(5个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有5个页面。 二、作品演示 三、代…

企业估值的三种方法

估值模型三剑客—DCF、P/E、EV /EBITDA 三种主要估值模型的优缺点: DCF 优点:通过对自由现金流的折现计算,反映了公司内在价值的本质,是最重要与最合理的估值方法。 缺点:未来自由现金流的估计不准确,受折现率影响…