如何在 Ruby 中将数组作为参数传递给 SOAP [英] How to pass Array as parameter to SOAP in Ruby

查看:49
本文介绍了如何在 Ruby 中将数组作为参数传递给 SOAP的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前我正在使用 Savon 在 ruby​​ 中使用 WebService.它工作得很好,但我很难传递参数SOAP 数组类型的参数.以下代码无法正常工作:

Currently I'm using Savon to work with WebService in ruby. It works pretty well but I have difficulty to pass parameter for argument of SOAP array type. Following code doesn't work properly:

ids = [0,1,2]
client.do_get_items { |soap| soap.body = {
    'item-list' => ids
}

如果您能解决我的问题或提出替代方案,我将不胜感激ruby&soap 库

I would appreciate if you can solve my problem or propose an alternative library for ruby&soap

推荐答案

我只是偶然发现了同样的问题,对我有用的临时解决方法如下:

I just stumbled on the same problem and the temporary workaround that worked for me is as follows:

ids = [0,1,2]
client.do_get_items { |soap| soap.body = {
  'item-list' => {
    'item1' => 0,
    'item2' => 1,
    'item3' => 2
  }  
}

名称item1"、item2"根本不重要.

The names "item1", "item2" shouldn't matter at all.

我使用以下辅助方法将常规数组转换为 SOAP 混乱:

I use the following helper method to convert regular arrays into SOAP mess:

def soap_array(array)
  returning({}) do |hash|
    array.each_with_index do |e, i|
      hash["item-#{i}"] = e
    end
  end
end

这篇关于如何在 Ruby 中将数组作为参数传递给 SOAP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆