【问题标题】:Ruby on rails: error in sending xml messageRuby on rails:发送 xml 消息时出错
【发布时间】:2016-06-18 10:08:45
【问题描述】:

我尝试将 xml 文件发送到 Web 服务,但它不起作用。 Web 服务供应商不知道。

如果您阅读错误消息,似乎使用了错误的soap版本,但供应商使用相同的xml文件进行了尝试,他对此文件没有任何问题。我不知道出了什么问题。

代码:

#Declaration
host     = "bar.foo.nl";
path     = "/services/setu.asmx";
port     = 443;
username = "xxx"
password = "yyy";
ssl      = true; 

#Create connection
req = Net::HTTP::Post.new(path)
req.basic_auth(username, password)

http = Net::HTTP.new(host, port)
http.use_ssl = ssl


#send file
res = http.request(req, 'D:/test.xml')

#show result
puts res.code
puts res.body

编辑:xml 文件:XML FILE

错误(500代码):

可能的 SOAP 版本不匹配:信封命名空间 http://ns.hr-xml.org/2007-04-15 出乎意料。期待 http://schemas.xmlsoap.org/soap/envelope/.

【问题讨论】:

  • 你的文件中是否定义了soap命名空间?
  • 是的,我上传了xml文件。

标签: ruby-on-rails xml


【解决方案1】:

我在您上传的文件中没有看到任何 soap 声明,您联系的服务似乎需要它。

http://www.w3schools.com/xml/xml_soap.asp 开始,重新设计您的内容以将其包裹在肥皂信封中。

【讨论】:

  • 我添加了一个信封、标头和正文并收到此错误:"">无法在没有有效操作参数的情况下处理请求。请提供一个有效的肥皂动作。”,但我不知道在哪里可以找到这个动作。
  • 那是进度,动作是请求一旦被接收到需要去的地方,就像方法名一样。 Web 服务提供商应该能够为您提供可用的选项。
猜你喜欢
  • 2012-07-21
  • 2014-04-28
  • 2018-08-27
  • 1970-01-01
  • 2017-04-04
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
相关资源
最近更新 更多