【问题标题】:Is there any gem to send request to some service in xml format是否有任何 gem 可以以 xml 格式向某些服务发送请求
【发布时间】:2013-01-24 13:04:24
【问题描述】:

我想在 xml 中向某些第三方服务发送请求,并希望在 xml 中得到响应。我正在寻找一些宝石或任何想法如何做到这一点。

我的想法是

  1. 做一些parttail _example.xml.builder

  2. onclick 从我的视图到某个按钮向控制器操作发送 ajax 请求并使用 render_to_string 呈现该 xml 文档,然后

  3. 将其保存在某个变量中

  4. 然后在同一操作中调用该服务方法

但这不是正确的事情,因为我认为应该有比我建议的事情更有效的事情

【问题讨论】:

    标签: ruby-on-rails xml web-services rest xml-serialization


    【解决方案1】:

    RoR 本身并不使用 XML,因此需要进行一定程度的转换。

    话虽如此,XML 生成在 RoR 应用程序中非常简单。有几种方法可以做到这一点,我最喜欢将所需数据构造为 Hash(Ruby 原生),然后是 the_hash.to_xml。

    如果您希望得到一致的结果,也可以在模型类中定义 XML 转换:

    class Example < ActiveRecord::Base
    
      # ensure that only column1, column2, etc are output as XML
      def to_xml(options = {})
        super( options.merge( select(:column1, :column2, etc) ) )
      end
    
    end
    

    然后在你的控制器中:

    poster = Example.find(123)
    request = Net::HTTP.new('www.example.com', 80)
    request.post('/path', poster.to_xml)
    

    希望以上演示了一个将 XML 数据发送到远程主机的简单示例。正如您所提到的,可以使用 xml.builder 构造更复杂的 XML

    HTH,祝你好运。

    【讨论】:

      猜你喜欢
      • 2013-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      相关资源
      最近更新 更多