小编mr.*_*n13的帖子

Savon忽略namespace_identifier属性

我试图重写由savon body命名空间写的 - ins0 我有这个客户端变量:

client = Savon.client(wsdl: "https://integcert.synxis.com/interface/Contracts/ChannelConnect2004.wsdl", log_level: :debug, log: true, pretty_print_xml: true, env_namespace: :soapenv, namespaces: {"xmlns:soapenv": "http://schemas.xmlsoap.org/soap/envelope/", "xmlns:head": "http://htng.org/1.1/Header/","xmlns:ns": "http://www.opentravel.org/OTA/2003/05"}, convert_request_keys_to: :none, namespace_identifier: "ns", element_form_default: :qualified)
Run Code Online (Sandbox Code Playgroud)

当我做请求时:

client.call(:ping, soap_header: { "head:HTNGHeader": { "head:From": { "head:Credential": { "head:userName": "******", "head:password":"*****" }}}}, message: {"ns:EchoData": "TestData"})
Run Code Online (Sandbox Code Playgroud)

我有这个肥皂rq身体:

    <soapenv:Body>
    <ins0:OTA_PingRQ>
      <ns:EchoData>TestData</ns:EchoData>
    </ins0:OTA_PingRQ>
  </soapenv:Body>
Run Code Online (Sandbox Code Playgroud)

这个ins0来自哪里?

此外,当我尝试使用namespace_identifier: nil参数定义客户端并执行此类请求时:

client.call(:ping, soap_header: { "head:HTNGHeader": { "head:From": { "head:Credential": { "head:userName": "******", "head:password":"*****" }}}}, message: {"ns:OTA_PingRQ": {"ns:EchoData": "TestData"}})
Run Code Online (Sandbox Code Playgroud)

我有这个肥皂rq身体:

 <soapenv:Body>
<OTA_PingRQ>
  <ns:OTA_PingRQ>
    <ns:EchoData>TestData</ns:EchoData>
  </ns:OTA_PingRQ> …
Run Code Online (Sandbox Code Playgroud)

soap wsdl ruby-on-rails savon

5
推荐指数
1
解决办法
465
查看次数

标签 统计

ruby-on-rails ×1

savon ×1

soap ×1

wsdl ×1