gpt4 book ai didi

ruby - Savon v3.x - 如何将完整的 xml 消息作为 soap 请求传递

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:31 25 4
gpt4 key购买 nike

使用 Savon 版本 3.x(当前主分支找到 https://github.com/savonrb/savon)。

目前要在 savon 3 中生成 soap 请求,您将消息的主体定义为散列,例如:

operation.body = {
Search: {
accountID: 23,
accountStatus: 'closed'
}
}

response = operation.call

从散列中,savon 将生成完整的 soap 消息 xml(信封、 header 等)并将该消息传递到 HttpClient 以将请求发布到您的 soap 端点。

我希望能够按照我的请求传递完整的 xml 消息,而不是散列,例如: my_xml_request_message =' ..... 更多嵌套节点、命名空间和大量属性等 ..... '

似乎 body 被发送到 build 以创建 soap 请求,然后由 call 发布: https://github.com/savonrb/savon/blob/master/lib/savon/operation.rb#L79

def call
raw_response = @http.post(endpoint, http_headers, build)
Response.new(raw_response)
end

所以我想是猴子补丁? 调用 允许我用我的 xml block 覆盖 build,例如:

def call
raw_response = @http.post(endpoint, http_headers, my_xml_request_message)
Response.new(raw_response)
end

这就是我们陷入困境的地方 - 我不清楚我的 xml 是否已正确创建或发布。或者如果这是继续的正确方法...

在此先感谢您的帮助!

最佳答案

我还没有使用 Savon3,因为它还不稳定。你可以在 v2 中做的是:

client.call(:authenticate, xml: "<envelope><body></body></envelope>")

我想类似的东西也适用于 v3。它存在于 v1 和 v2 中。

关于ruby - Savon v3.x - 如何将完整的 xml 消息作为 soap 请求传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21472013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com