Возможно, я просто не пишу идиоматический код для savon, поэтому, пожалуйста, не стесняйтесь меня поправлять, но я пытался сделать несколько запросов на одном и том же клиенте, как показано в
client=Savon::Client.new {
wsdl.document=wsdl_path
}
r1=client.request(:company_get_report_suites) do
wsse.credentials APP_CONFIG['omniture']['username'],APP_CONFIG['omniture']['shared_secret'],:digest
end
r2=client.request(:scheduling_get_reports_run_history) do
wsse.credentials APP_CONFIG['omniture']['username'],APP_CONFIG['omniture']['shared_secret'],:digest
end
.второй запрос заканчивается повторным использованием одноразового номера.Смысл одноразового использования заключается в том, чтобы использовать его только один раз, поэтому служба, на которую я звоню, жалуется, что я повторно использовала ее, и отказывается обслуживать запрос.Моей первой мыслью было добавить метку времени, но это не помогло;на самом деле, исходный код показывает, что одноразовый номер используется, если он установлен, и генерируется только в том случае, если он не был установлен ранее.
Очевидно, что при необходимости я могу создать нового клиента, но это довольно тяжелая операция икажется маловероятным нормальный способ создания нескольких запросов от одного и того же клиента.
Есть ли разумное решение?