将简短的数据类型添加到SOAP请求主体元素

废话

我正在尝试使用Savon(版本2)构建SOAP请求。

这是请求XML的外观:

<?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>
    <cred_LogIn xmlns="http://webservice.dz-manager.com/">
      <sUsername>string</sUsername>
      <sPassword>string</sPassword>
      <sConsumerIdent>string</sConsumerIdent>
    </cred_LogIn>
  </soap12:Body>
</soap12:Envelope>

当我这样做时:

client = Savon.client(
    wsdl: 'https://online-tools.dz-manager.com/Services/DzM_WebService.asmx?WSDL',
    soap_version: 2,
    pretty_print_xml: true,
    env_namespace: 'soap12',
    namespace_identifier: nil,
    log_level: :debug)

client.call(:cred_log_in,
            message:
              {username: 'my_username',
               password: 'my_password',
               consumer_ident: 'DZ-Manager_Web-Service_Consumer'},
            attributes: {
               xmlns: 'http://webservice.dz-manager.com/'}
)

Savon构建以下XML:

<?xml version="1.0" encoding="UTF-8"?>
<soap12:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://webservice.dz-manager.com/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <cred_LogIn xmlns="http://webservice.dz-manager.com/">
      <username>my_username</username>
      <password>my_password</password>
      <consumerIdent>DZ-Manager_Web-Service_Consumer</consumerIdent>
    </cred_LogIn>
  </soap12:Body>
</soap12:Envelope>

这几乎是期望的结果。唯一的区别是消息元素应以's'开头,例如:<username>应当为<sUsername>我在其他操作中发现“ int”(即整数)和“ l”(即long)时,此“ s”可能表示“字符串”。

在Savon中,是否有隐藏的选项可以在消息元素之前附加其数据类型?如果不是,如何确定元素的数据类型缩写呢?

更改值中的键message不起作用:s_username: 'my-username'of 'sUsername' => 'my-username'

废话

通过使用文档源,我提出了以下解决方案:

class ServiceRequest

  def to_s
    builder = Builder::XmlMarkup.new

    builder.tag! :sUsername, "my_username"
    builder.tag! :sPassword, "my_password"
    builder.tag! :sConsumerIdent, "DZ-Manager_Web-Service_Consumer"

    builder
  end

end

然后在终端中:

client = Savon.client(
    wsdl: 'https://online-tools.dz-manager.com/Services/DzM_WebService.asmx?WSDL',
    soap_version: 2,
    pretty_print_xml: true,
    env_namespace: 'soap12',
    namespace_identifier: nil,
    log_level: :debug)

client.call(:cred_log_in,
            message: ServiceRequest.new,
            attributes: {
               xmlns: 'http://webservice.dz-manager.com/'}
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

回送4:将类型属性添加到SOAP请求中的元素

来自分类Dev

将元素添加到包含自定义数据类型的简单链接列表中

来自分类Dev

WReq将简短Cookie添加到请求中

来自分类Dev

如何在Haskell中将元素添加到数据类型列表

来自分类Dev

如何在Haskell中将元素添加到数据类型列表

来自分类Dev

使用多个变量将数据类型添加到数据库中

来自分类Dev

如何将数据添加到 String 数据类型的 ArrayList

来自分类Dev

AngularJS ng-options将数据类型添加到选项的值

来自分类Dev

如何使用mysql将INT数据类型的列添加到已创建的表中

来自分类Dev

将整数数据类型值添加到指针而不是双精度值

来自分类Dev

将变量数据类型的泛型添加到集合 Java

来自分类Dev

SQL 命名约定:将数据类型添加到列名

来自分类Dev

想要添加到Haskell中的数据类型

来自分类Dev

将XML文件添加到SOAP请求

来自分类Dev

将数据添加到列表元素

来自分类Dev

根据python中的列数据类型将列添加到显示布尔值的数据框

来自分类Dev

将DIV添加到iframe主体

来自分类Dev

将内容类型添加到Swashbuckle获取请求

来自分类Dev

无法将新列添加到具有TIMESTAMP数据类型的SQL Server表中

来自分类Dev

使用Python API将主体添加到云调度程序请求中

来自分类Dev

将简短描述内容添加到挂钩

来自分类Dev

将默认数据添加到Axios请求

来自分类Dev

将json数据添加到中间件请求

来自分类Dev

如何将数据添加到http请求

来自分类Dev

使用JavaScript将DOM元素添加到主体的最佳方法

来自分类Dev

将数据添加到动态创建的元素并绑定事件

来自分类Dev

将数据框添加到每个列表元素

来自分类Dev

将列添加到数据框列表内的元素

来自分类Dev

将列表元素添加到数据框的列

Related 相关文章

  1. 1

    回送4:将类型属性添加到SOAP请求中的元素

  2. 2

    将元素添加到包含自定义数据类型的简单链接列表中

  3. 3

    WReq将简短Cookie添加到请求中

  4. 4

    如何在Haskell中将元素添加到数据类型列表

  5. 5

    如何在Haskell中将元素添加到数据类型列表

  6. 6

    使用多个变量将数据类型添加到数据库中

  7. 7

    如何将数据添加到 String 数据类型的 ArrayList

  8. 8

    AngularJS ng-options将数据类型添加到选项的值

  9. 9

    如何使用mysql将INT数据类型的列添加到已创建的表中

  10. 10

    将整数数据类型值添加到指针而不是双精度值

  11. 11

    将变量数据类型的泛型添加到集合 Java

  12. 12

    SQL 命名约定:将数据类型添加到列名

  13. 13

    想要添加到Haskell中的数据类型

  14. 14

    将XML文件添加到SOAP请求

  15. 15

    将数据添加到列表元素

  16. 16

    根据python中的列数据类型将列添加到显示布尔值的数据框

  17. 17

    将DIV添加到iframe主体

  18. 18

    将内容类型添加到Swashbuckle获取请求

  19. 19

    无法将新列添加到具有TIMESTAMP数据类型的SQL Server表中

  20. 20

    使用Python API将主体添加到云调度程序请求中

  21. 21

    将简短描述内容添加到挂钩

  22. 22

    将默认数据添加到Axios请求

  23. 23

    将json数据添加到中间件请求

  24. 24

    如何将数据添加到http请求

  25. 25

    使用JavaScript将DOM元素添加到主体的最佳方法

  26. 26

    将数据添加到动态创建的元素并绑定事件

  27. 27

    将数据框添加到每个列表元素

  28. 28

    将列添加到数据框列表内的元素

  29. 29

    将列表元素添加到数据框的列

热门标签

归档