Rails 6 下 Savon 连接 SOAP 服务器报错 SOAPAction login does not match an operation

环境

  • Rails: 6.1.0
  • Ruby: 2.7.2
  • Savon: 2.12.0

问题

使用Savon在调用SOAP的接口时,报下面的错误

Savon::SOAPFault: (soap:Server) The given SOAPAction login does not match an operation.

解决办法

client里边设置headers参数

 client = Savon.client(
      wsdl: 'http://xxx.com/Auth?wsdl',
      headers: { 'SOAPAction' => '' },  # 这里要用 => 不能用 : ,这个地方在某些环境下符号键不生效
  )

client.call(:login, message: {
    username: "xxx",
    password: "xxxxxx"
})
点赞

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注