ruby-on-rails - 在 Rails 中使用 XML 发出 SOAP 请求

标签 ruby-on-rails xml ruby soap

我想向 SOAP Web 服务发出请求,但我不想安装任何 gem。 有没有办法只使用纯 XML 发出请求?

我认为这很简单,但我可能遗漏了一些东西,因为所有的实现/教程都使用了 gem。

我认为 SOAP 响应也可以作为 XML 响应来处理,对吗?

请求是这样的:

POST /services/tickets/issuer.asmx HTTP/1.1
Host: demo.demo.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <Tick xmlns="http://demo.com/test/test">
      <Request>
        <Username>string</Username>
        <Password>string</Password>
        <AcquirerId>int</AcquirerId>
        <RequestType>string</RequestType>
        <ExpirePreauth>unsignedByte</ExpirePreauth>
        <BitPerSec>int</BitPerSec>
        <Office>string</Office>
      </Request>
    </Tick>
  </soap12:Body>
</soap12:Envelope>

最佳答案

你可以这样做:

def post_xml(path, xml)
  host = "http://demo.demo.com"
  http = Net::HTTP.new(host)
  resp = http.post(path, xml, { 'Content-Type' => 'application/soap+xml; charset=utf-8' })
  return resp.body
end

此方法将返回 XML 响应。

关于ruby-on-rails - 在 Rails 中使用 XML 发出 SOAP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1184802/

相关文章:

ruby-on-rails - :symbol to Constant in rails

php - 使用 php 将数据更新/附加到 xml 文件

ruby-on-rails - 如何检查值是否包含在 ActiveRecord 验证的散列中?

mysql - 编辑 Rails 迁移表不会影响生成的表

ruby-on-rails - 如何在 link_to 帮助器中添加 <i> 标签?

ruby-on-rails - Friendly_ID 的范围有历史记录吗?

html - 如何转义内联样式中的引号?

java - 避免大图像将其他布局推出屏幕

ruby-on-rails - 如何在 Slim 模板中渲染 HTML

Ruby 异常处理