【问题标题】:How do I add an attribute to a header tag with Savon?如何使用 Savon 将属性添加到标题标签?
【发布时间】:2011-07-07 04:15:00
【问题描述】:

我的 SOAP 文档中的标题需要有这样的属性:

<soap:Header>
<eWAYHeader xmlns="https://www.eway.com.au/gateway/managedpayment">
  <eWAYCustomerID>string</eWAYCustomerID>
  <Username>string</Username>
  <Password>string</Password>
</eWAYHeader>

eWAYHeader 需要一个 xmlns 属性。

我试过了

    def create_customer(customer, card)
    response = @client.request(:create_customer, "xmlns" => "https://www.eway.com.au/gateway/managedpayment") do
      soap.header = header
      soap.body = create_customer_body(customer, card)
    end
  end

  private

  def header
    {
      "eWAYHeader" => {
        :attributes! => { :xmlns => 'http://www.eway.com.au/gateway/managedpayment' },
        "eWayCustomerID" => '87654321',
        "Username" => 'test@eway.com.au',
        "Password"=> 'test123'
      }
    }
  end

但是属性!条目被忽略。

soap.header 只接受 Hash 作为参数,所以我不能只使用字符串设置它的值。

我如何在 Savon 中实现这一点?

谢谢,

马丁

【问题讨论】:

    标签: ruby soap savon


    【解决方案1】:

    你可以这样做

    soap.header = {
      "eWAYHeader" => {
        "eWayCustomerID" => '87654321',
        "Username" => 'test@eway.com.au',
        "Password"=> 'test123'
      },
      :attributes! => {"eWAYHeader" => { :xmlns => 'http://www.eway.com.au/gateway/managedpayment' } }, }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    相关资源
    最近更新 更多