【问题标题】:Savon gem shows (unknown keyword: :message)Savon gem 显示(未知关键字::message)
【发布时间】:2021-02-01 23:22:40
【问题描述】:

我正在尝试调整 Ryan Bates 的 railscast http://railscasts.com/episodes/290-soap-with-savon?autoplay=true 以将 Savon 用于 wsdl,但我收到“ArgumentError (unknown keyword: :message)”

一步一步:巴西邮件公司

  1. wsdl: https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl
  2. 在 SoapUI 5.5.0 上测试它

新肥皂项目

  1. 初始 wsdl:https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl

  2. 服务:咨询 cep

  3. 点击请求 1 后,我得到

    肥皂环境:标题/ 肥皂环境:身体 cli:consultaCEP ? 正文> 信封>

  4. “cep”表示“邮政编码”,替换为“?”对于“81531980”(有效的邮政编码),并提交请求,我得到以下信息:

    肥皂:身体 美洲花园 81531980 库里提巴 Avenida Coronel Francisco Heráclito dos Santos 100 公关 肥皂:身体> 信封>

下一步是对 savon 做同样的事情。于是,我新建了一个 Rails 应用,捆绑 savon gem 并进入控制台:

> rails c
2.7.0 :001 > client = Savon.client(wsdl: "https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl")
2.7.0 :002 > client.operations
... :consulta_cep ...
2.7.0 :003 > response = client.call(:consulta_cep, message: { cep: '81531980'} )
Traceback (most recent call last):
        1: from (irb):10
Savon::SOAPFault ((soap:Server) The given SOAPAction consultaCEP does not match an operation.)
2.7.0 :004 > response = client.call(:cli, :consulta_cep, message: { cep: '81531980'} )
Traceback (most recent call last):
        2: from (irb):10
        1: from (irb):11:in `rescue in irb_binding'
ArgumentError (unknown keyword: :message)

我做错了什么?

【问题讨论】:

    标签: ruby-on-rails ruby wsdl savon


    【解决方案1】:

    您需要禁用SOAPAction HTTP 标头。为此,请添加soap_action: false

    client = Savon.client(
      wsdl: "https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl"
    )
    
    response = client.call(:consulta_cep, soap_action: false, message: { cep: '81531980' })
    
    response.body[:consulta_cep_response][:return][:bairro] #=> "Jardim das Américas"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-22
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多