我最近更新了savon 2.0.2,我正在使用它通过soap发送一些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是好的,但证书被忽略…
so far I got:
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
任何帮助将非常感激!!
使用ssl_verify_mode :none
告诉Savon关闭SSL检查。这就是证书被忽略的原因。正如评论中所指出的,完整的文档可以在Savon网站上找到。