我正在使用 Savon 2.6 来实现 SOAP 服务的客户端。 我必须在数据库中保存原始请求和原始响应。 获取原始 XML 响应不是问题,但如何获取原始 XML 请求?
我通过以下方式使用Savon:
client = Savon.client(wsdl: "http://blabla.com/bla.wdsl")
response = client.call(:operation_name, message: {param1: "a", param2: "b'})
response.to_xml # => get raw XML response
最佳答案
您可以破解 Client class 中的代码和 Operation class .
我所做的是在 Operation
中添加一个方法返回请求。在 Client#call
我将请求设置为实例变量并为其添加了 getter。
编辑: 如果Operation#build_request仍然执行我三年多前第一次发布此内容时所做的事情,例如:
def request(locals = {}, &block)
builder = build(locals, &block)
build_request(builder)
end
可能就是您正在寻找的。p>
关于ruby - 如何获取 Savon 发送的原始请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25528484/