我最近更新了 savon 2.0.2,并使用它通过肥皂发送一些 xml。我必须使用证书,但在更新新 savon 版本的语法后,证书将被忽略。有人可以帮助我使用新语法 - 我可能遗漏了一些东西......我正在运行 ruby 1.9.3 和 rails 3.2.9
旧(工作)版本:
client = Savon::Client.new do | wsdl |
wsdl.endpoint = CONFIG['endpoint']
wsdl.namespace = CONFIG['namespace']
end
response = client.request(:ns, :getToken) do
http.auth.ssl.cert = OpenSSL::X509::Certificate.new(
File.read(Rails.root + "lib/certs/cert.pem"))
http.auth.ssl.cert_key_file = Rails.root + "lib/certs/key.pem"
http.auth.ssl.verify_mode = :none
soap.body = {
// body
}
soap.header={
"ns:account"=>{
:login=>CONFIG['login'],
:password=>CONFIG['password']
}
}
end
现在我尝试在 2.0.2 中做同样的事情,但它不起作用 - xml 没问题,但证书被忽略了......
到目前为止,我得到了:
client = Savon.client do
endpoint CONFIG['endpoint']
namespace CONFIG['namespace']
namespace_identifier :ns
ssl_cert_file OpenSSL::X509::Certificate.new(File.read(Rails.root + "lib/certs/cert.pem"))
ssl_cert_key_file Rails.root + "lib/certs/key.pem"
ssl_verify_mode :none
soap_header(
"sus:account"=>{
:login=>CONFIG['login'],
:password=>CONFIG['password']
}
)
end
response = client.call(:getToken) do
message(
// body
)
end
任何帮助将不胜感激!!!