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

哈尔滨最好的网站建设公司专业的郑州网站推广

哈尔滨最好的网站建设公司,专业的郑州网站推广,交易网站开发,京能集团在2023年中国企业500强什么是 SOAP? 简单对象访问协议(SOAP,全写为Simple Object Access Protocol)是交换数据的一种协议规范。 SOAP 是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。 简单对象访问协议是交换数据的一种协议规范,是一种轻量的、…

什么是 SOAP?

简单对象访问协议(SOAP,全写为Simple Object Access Protocol)是交换数据的一种协议规范。

SOAP 是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。

简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。


SOAP4R 安装

SOAP4R 由Hiroshi Nakamura开发实现,用于 Ruby 的 SOAP 应用。

SOAP4R 下载地址:http://raa.ruby-lang.org/project/soap4r/。

注意:你的ruby环境可能已经安装了该该组件。

Linux 环境下你也可以使用 gem 来安装该组件,命令如下:

gem install soap4r --include-dependencies

如果你是window环境下开发,你需要下载zip压缩文件,并通过执行 install.rb 来安装。


SOAP4R 服务

SOAP4R 支持两种不同的服务类型:

  • 独立服务 (SOAP::RPC:StandaloneServer)
  • 基于 CGI/FastCGI 服务 (SOAP::RPC::CGIStub)

本教程将为大家介绍如何建立独立的 SOAP 服务。步骤如下:

第1步 - 继承SOAP::RPC::StandaloneServer

为了实现自己的独立的服务器,你需要编写一个新的类,该类为 SOAP::RPC::StandaloneServer 的子类:

class MyServer < SOAP::RPC::StandaloneServer ............... end

注意:如果你要编写一个基于FastCGI的服务器,那么你需要继承 SOAP::RPC::CGIStub 类,程序的其余部分将保持不变。

第二步 - 定义处理方法

接下来我们定义Web Service的方法,如下我们定义两个方法,一个是两个数相加,一个是两个数相除:

class MyServer < SOAP::RPC::StandaloneServer...............# 处理方法def add(a, b)return a + benddef div(a, b) return a / b end
end

第三步 - 公布处理方法

接下来添加我们在服务器上定义的方法,initialize方法是公开的,用于外部的连接:

class MyServer < SOAP::RPC::StandaloneServerdef initialize(*args)add_method(receiver, methodName, *paramArg)end
end

以下是各参数的说明:

参数描述
methodName调用 RPC 请求的方法名。
receiver包含方法名的方法的对象。 如果你在同一个类中定义服务方法,该参数为 self
paramArg参数名和参数模式

为了理解 inout 和 out 参数,考虑以下服务方法,需要输入两个参数:inParam 和 inoutParam,函数执行完成后返回三个值:retVal、inoutParam 、outParam:

def aMeth(inParam, inoutParam)retVal = inParam + inoutParamoutParam = inParam . inoutParaminoutParam = inParam * inoutParamreturn retVal, inoutParam, outParam
end

公开的调用方法如下:

add_method(self, 'aMeth', [%w(in inParam),%w(inout inoutParam),%w(out outParam),%w(retval return)
])

第四步 - 开启服务

最后我们通过实例化派生类,并调用 start 方法来启动服务:

myServer = MyServer.new('ServerName','urn:ruby:ServiceName', hostname, port)myServer.start

以下是请求参数的说明:

参数描述
ServerName服务名,你可以取你喜欢的
urn:ruby:ServiceNameHere urn:ruby 是固定的,但是你可以为你的服务取一个唯一的 ServiceName
hostname指定主机名
portweb 服务端口

实例

接下来我们通过以上的步骤,创建一个独立的服务:

实例

require "soap/rpc/standaloneserver"beginclass MyServer < SOAP::RPC::StandaloneServer# Expose our servicedef initialize(*args)add_method(self, 'add', 'a', 'b')add_method(self, 'div', 'a', 'b')end# Handler methodsdef add(a, b)return a + benddef div(a, b) return a / b endendserver = MyServer.new("MyServer", 'urn:ruby:calculation', 'localhost', 8080)trap('INT){server.shutdown}server.start
rescue => errputs err.message
end

执行以上程序后,就启动了一个监听 8080 端口的本地服务,并公开两个方法:add 和 div。

你可以再后台执行以上服务:

$ ruby MyServer.rb &

SOAP4R 客户端

ruby 中使用 SOAP::RPC::Driver 类开发 SOAP 客户端。接下来我们来详细看下 SOAP::RPC::Driver 类的使用。

调用 SOAP 服务需要以下信息:

  • SOAP 服务 URL 地址 (SOAP Endpoint URL)
  • 服务方法的命名空间(Method Namespace URI)
  • 服务方法名及参数信息

接下来我们就一步步来创建 SOAP 客户端来调用以上的 SOAP 方法:add 、 div:

第一步 - 创建 SOAP Driver 实例

我们可以通过实例化 SOAP::RPC::Driver 类来调用它的新方法,如下所示:

SOAP::RPC::Driver.new(endPoint, nameSpace, soapAction)

以下是参数的描述:

参数描述
endPoint连接 SOAP 服务的 URL 地址
nameSpace命名空间用于 SOAP::RPC::Driver 对象的所有 RPC .
soapAction用于 HTTP 头部的 SOAPAction 字段值。如果是字符串是"" 则默认为 nil

第二步 - 添加服务方法

为 SOAP::RPC::Driver 添加 SOAP 服务方法,我们可以通过实例 SOAP::RPC::Driver 来调用以下方法:

driver.add_method(name, *paramArg)

以下是参数的说明:

参数描述
name远程web服务的方法名
paramArg指定远程程序的参数

第三步 - 调用SOAP服务

最后我们可以使用 SOAP::RPC::Driver 实例来调用 SOAP 服务:

result = driver.serviceMethod(paramArg...)

serviceMethod SOAP服务的实际方法名,paramArg为方法的参数列表。

实例

基于以上的步骤,我们可以编写以下的 SOAP 客户端:

实例

#!/usr/bin/ruby -wrequire 'soap/rpc/driver'NAMESPACE = 'urn:ruby:calculation'
URL = 'http://localhost:8080/'begindriver = SOAP::RPC::Driver.new(URL, NAMESPACE)# Add remote sevice methodsdriver.add_method('add', 'a', 'b')# Call remote service methodsputs driver.add(20, 30)
rescue => errputs err.message
end

http://www.ds6.com.cn/news/59916.html

相关文章:

  • H5响应式网站数据站长查询站长工具
  • 怎么用织梦制作响应式布局网站泰州seo排名扣费
  • 旅游网站建设方案书巩义网络推广外包
  • 机械加工网上接单平台有哪些啊河北seo诊断培训
  • 政府网站成为建设搜索引擎排名google
  • 深圳市网站建设公司设计贵阳关键词优化平台
  • 淄博手机网站营销推广的方法有哪些
  • 网站建设设计制作维护南宁百度seo
  • 企业网站管理系统破解版婚恋网站排名
  • 福田做网站福田网站建设福田建网站500专业做网站设计
  • 创新的网站建设公司排名seo搜索引擎优化推广专员
  • 哈尔滨定制网站建设网站推广的营销策划方案
  • 《水利建设与管理》杂志社网站太原百度seo排名软件
  • 网站导航栏三根横线怎么做的搜索引擎营销与seo优化
  • 制作平台网站方案seo网站优化课程
  • 网站流程图百度网络营销中心
  • 徐州网站建设培训营销型网站是什么意思
  • 网站建设一般要素百度灰色词优化排名
  • 办公室门户网站建设和管理工作引流推广怎么做
  • wordpress上传服务器域名超级seo外链
  • 做企业网站百度推广客服自然搜索优化
  • 遵义网站建设oadmin中国新冠疫苗接种率
  • 南通做外贸网站关键词优化的策略
  • 成都哪家公司做网站好网络营销的常用方法
  • 做网站用什么环境网络营销顾问是做什么的
  • 福州专业制作网站晚上网站推广软件免费版
  • 武汉洪山区做网站的公司中国搜索引擎排行榜
  • 合肥做公司网站b2b平台推广网站
  • 企业网站建设优势营销托管全网营销推广
  • 南京开发seo软文推广