当前位置: 首页 > news >正文

第十七章 创建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.lryc.cn/news/362946.html

相关文章:

  • 学习java的日子 Day52 多表联合查询,DCL,数据类型,约束,索引,视图
  • 计算机视觉(CV)的教程、相关项目
  • mysql in 逗号分隔_数据库字段是逗号分隔的查询(FIND_IN_SET(str,strlist)方法的使用)
  • 【Python】 将日期转换为 datetime 对象在 Python 中
  • dpdk-19.11 arm64 环境适配 Mellanox CX4 网卡
  • 1141. 查询近30天活跃用户数
  • 11_JavaWeb监听器
  • jmeter常用的断言
  • Opencv Python图像处理笔记二:图像变换、卷积、形态学变换
  • 使用若依框架RuoYi前后端分离版+运行+自动生成页面进行导入进行开发+工具(完整版)
  • 开源博客项目Blog .NET Core源码学习(29:App.Hosting项目结构分析-17)
  • 2021 hnust 湖科大 计组课设 包含multisim14连线文件,报告,指导书
  • CHATGPT升级plus(已有账号前提下)
  • 通过血清拉曼光谱进行COVID-19的高效初步筛查
  • Java 性能调优与监控工具详解
  • LeetCode 1633, 122, 239
  • (十五)统计学基础练习题九(选择题T401-450)
  • 用大白话讲解下 CNN和卷积核( 百度 AI 回答 )
  • 安全生产新篇章:可燃气体报警器检验周期的国家标准解读
  • github搭建个人博客
  • Linux系统之mv命令的基本使用
  • vscode 好用的插件
  • 什么是蓝牙定位车载GPS终端
  • 指纹采集技术
  • /etc/fstab、/etc/mtab 文件详解及永久挂载(文件系统、ISO镜像、文件网络共享)
  • 【Linux】进程(5):命令行参数
  • vue2+antv/x6实现er图
  • 如何在XDMA中查看LTSSM状态机
  • 编译和运行qemu-uboot-arm64单板的Armbian系统
  • Python版《消消乐》,附源码