首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当SOAP代码已知时,在Ruby中访问API

当SOAP代码已知时,在Ruby中访问API
EN

Stack Overflow用户
提问于 2013-04-22 14:13:46
回答 1查看 342关注 0票数 1

我知道有很多关于如何使用Ruby来发出SOAP请求的文章(通常引用了gem ),但我对它们没有太多的理解(我对编程完全是个新手)。我能够成功地访问API并使用soaupUI执行get请求,而我只是在寻找其他方法来使用Ruby来完成这些请求。以下是我的意见:

  • soap = soap请求的XML代码
  • 发布"https://....
  • 接受-编码: gzip,放气
  • 内容-类型: text/xml;charset=UTF-8
  • SOAPAction:“urn:provider/.”
  • 内容长度: 1253
  • 主持人:网络服务..。
  • 连接:保持-活着
  • 用户代理:/4.1.1(Java1.5)

我将识别信息替换为“.”我是否可以简单地使用这些输入来启动soap请求?

谢谢!

编辑:好的,考虑到下面的注释,下面是我试图访问的一个实践API。端点是http://www.thomas-bayer.com:80/axis2/services/BLZService,我从soupUI复制了soap,在那里我能够成功地执行请求。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require 'net/http'
require 'net/https'

http = Net::HTTP.new('thomas-bayer.com', 80)
http.use_ssl = false
path = 'axis2/services/BLZService'

data = <<-EOF
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:blz="http://thomas-bayer.com/blz/">
<soapenv:Header/>
<soapenv:Body>
<blz:blz>70070010</blz:blz>
</blz:getBank>
</soapenv:Body>
</soapenv:Envelope>
EOF

headers = {
'Referer' => 'http://www.appfusion.net',
'Content-Type' => 'text/xml',
'Host' => 'thomas-bayer.com'
}

resp, data = http.post(path, data, headers)
puts 'Code = ' + resp.code
puts 'Message = ' + resp.message
resp.each { |key, val| puts key + ' = ' + val }
puts data

当我运行它时,会返回许多不同的错误。解决这个问题的任何帮助都是非常感谢的;下面是wsdl,如果这有帮助的话:http://www.thomas-bayer.com/axis2/services/BLZService?wsdl(如果是那样的话)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-23 17:10:49

我想出了一种非常简单的方法,可以使用savon中的soap.xml类(version 1)来实现这一点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
client = Savon.client("www.mywsdl.wsdl")
response = client.request :get_my_request do
soap.xml ='my xml code'
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16157640

复制
相关文章
oracle soap api,Web API与SOAP API的区别
总的来说,Web API比SOAP API有优势,多数情况下SOAP API的优势仅在消息结构的描述上。因此在三方集成时,当对方的集成工具仅支持根据WSDL来构建调用时,才建议考虑发布SOAP API。
全栈程序员站长
2022/09/18
2.4K0
magento soap api
step 2: 添加一个资源信息(模块名,不要加namespace) 注意:在etc 下的XML文件中,不要使用namespace, 否则会报错,会把当前模块下的helper 去Mage下查找。 在 resource 下添加 method,method 中的元素有 list ,create,update,delete.info. 如下:
全栈程序员站长
2022/09/14
1.7K0
magento soap api
REST API和SOAP API区别[通俗易懂]
REST API 优点: 1. 轻量级的解决方案,不必向SOAP那样要构建一个标准的SOAP XML。 2. 可读性比较好:可以把URL的名字取得有实际意义。 3. 不需要SDK支持:直接一个Http请求就可以,但是SOAP则可能需要使用到一些Webservice的类库(例如Apache的Axis) 缺点: 1. 复杂的应用中,URL可能非常长,而且不容易解析。 SOAP API 优点: 1. 定义严格。必须符合SOAP的格式 2. 某些时候使用比较方便 3. 开发工具支持比较多一点。 缺点: 1. 需要生成WSDL文件
全栈程序员站长
2022/09/14
2K0
python发送soap报文_python处理SOAP API
我们常见的API一般是restful, 但是有的时候也会遇到非restful的时候,对于Restful API, 我们很容易用python处理。SOAP API 我们如何来处理呢?
全栈程序员站长
2022/09/14
4.8K0
当MES遇上PLC——SOAP篇(下)
前段时间,有客户在网上看到了我们边缘计算模块产品,找到了我们,跟我们描述了他们目前遇到的问题:
剑指工控
2022/11/14
1.3K0
当MES遇上PLC——SOAP篇(下)
【技术干货】Attacking SOAP API
SOAP(Simple Object Access Protocol)简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
小阑本阑
2023/10/07
4600
【技术干货】Attacking SOAP API
How to use SOAP API call SF
Set up → API → API WSDL page → Generate Enterprise WSDL
全栈程序员站长
2022/09/15
2840
How to use SOAP API call SF
REST API和SOAP API之间的区别
The Representational State Transfer (REST)架构风格不是可以购买的技术,也不是可以添加到软件开发项目中的库。REST是一种世界观,将信息提升为我们构建的体系结构的第一流元素。
程序你好
2018/08/09
2K0
REST API和SOAP API之间的区别
API Testing 11 – SOAP和REST API区别
SOAP – Simple Object Access Protocol REST – Representational State Transfer Protocol
全栈程序员站长
2022/09/15
5430
API Testing 11 – SOAP和REST API区别
REST API和SOAP API之间的区别
The Representational State Transfer (REST)架构风格不是可以购买的技术,也不是可以添加到软件开发项目中的库。REST是一种世界观,将信息提升为我们构建的体系结构的第一流元素。
全栈程序员站长
2022/09/14
1.4K0
C#访问SOAP Web Service时500报错后的返回信息获取
调试Infor ERP LN Web Service的时候,你会发现如果调用不成功,返回的Http Header是500,但用SoupUI还是能看到结果返回,是不是很诡异。
崔文远TroyCui
2019/02/26
2.5K0
C#访问SOAP Web Service时500报错后的返回信息获取
当公司倒闭时,你在干什么?
说出来你可能不信,松哥竟然也经历过公司倒闭的事!最近看到我 GitHub 上开源的 vhr 项目 star 数即将过3k,不禁想起做这个项目时候的事,刚过去一年多,依然历历在目。
江南一点雨
2019/05/07
6600
当公司倒闭时,你在干什么?
当人们在讨论 ChatGPT 时,都在讨论什么
第一,ChatGPT 本质上没有脱离计算机的计算范畴,它只能也终将取代繁重重复、只依靠经验和知识的劳动和工作,它可以取代大部分行业的一部分人,包括程序员,但是无法取代所有程序员,也无法取代那些依靠智慧和灵感的工作,笔者在大厂待过一两年,相信所有大厂都一样,主要产品的代码由于历经多人维护、多次迭代、多向重构,其代码量随随便便几千万行甚至上亿计,这样一个庞然大物能够运行起来,除了优雅的架构设计,还有数不清的胶水,复杂度远超当下 ChatGPT 能够生成的 demo 代码,但是它还是能够有它用武之地,有记不清的 function 代码,它是个好帮手,因此更像是一个无限容量的代码字典。
月小水长
2023/03/02
5290
当人们在讨论 ChatGPT 时,都在讨论什么
当flex容器中包含absolute元素时
我们设置了justify-content: center;,不同机型显示区别如下:
celineWong7
2020/11/05
3.7K0
使用rvm在Mac中安装ruby和rails
MacOS默认安装的是ruby 1.8.7,如果你想使用ruby 1.9.2的话,除了在官网下载源码编译安装外,可以使用rvm来协助安装。
EltonZheng
2021/01/22
3.2K0
Octopress中嵌入ruby代码如何不被解析
用Octopress写博客即将快一年了,感觉自己用的还可以,并且借此熟练使用了Markdown,但是前几天写一篇关于如何在Octopress中集成多说评论的文章的时候,遇到了一个代码高亮的问题,就是如何处理代码块的问题。
技术小黑屋
2018/09/04
4550
如何运行ruby代码
第一种,ruby -e 在命令行中运行下面命令,-e的意思是,把后面的字符串当作脚本执行 ruby -e "print 'hello'" 使用irb交互控制台 在命令行输入irb hello worldxingoo@xingoo-Lenovo:~/workspace/RubyTest$ irb irb(main):001:0> p "hello" "hello" => "hello" irb(main):002:0> p "中文hello" "中文hello" => "中文hello" irb(main):
用户1154259
2018/01/17
1.4K0
ruby连接mysql代码
3. sudo apt-get install libmysqlclient-dev
用户8983410
2021/11/01
1.4K0
java调用ruby代码
问题: 最近在做一个应用的时候碰到了一个问题。客户端需要调用服务器端传回的脚本信息,然后执行。其中脚本类型包括ruby。而java中调用ruby的代码大致如下: 1 String jrubyCode="puts 'hello world'"; 2 ScriptEngineManager manager = new ScriptEngineManager(); 3 ScriptEngine engine = manager.getEngineByName("jruby"); 4 engine.eval(jru
SecondWorld
2018/03/14
2.3K0
java调用ruby代码
点击加载更多

相似问题

从Ruby通过SOAP接口访问必应翻译Api

13

访问Sabre Soap API

17

在Ruby中已知路径时,取消链接Tempfile

11

Salesforce Soap Api的Ruby gem

20

当wsdl文件已知时,从java访问Web服务

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文