我正在 Rails 3 上开发并使用 Savon(savonrb.com)
- 我需要通过 SOAP 连接到 Web 服务
- Web 服务需要身份验证
我可以连接但无法获得身份验证...
我使用 SOAP UI 进行测试,一切正常。
我的 Rails 代码如下所示:
client = Savon::Client.new do
wsdl.document = "http://services.blahblah.com/Service.asmx?WSDL"
end
client.wsse.credentials "username", "password", :digest
if response.success?
@soap_status = 'Connected'
@data = response.to_array(:get_brochure_response, :error_message)
end
我得到响应但 :error_message 返回身份验证失败...
这是它在 SOAP UI 中的外观
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ser="http://services.blahblah.com/service">
<soap:Header>
<ser:ICEAuthHeader>
<!--Optional:-->
<ser:Username>username</ser:Username>
<!--Optional:-->
<ser:Password>password</ser:Password>
</ser:ICEAuthHeader>
</soap:Header>
<soap:Body>
<ser:GetBrochure>
<!--Optional:-->
<ser:MappedID>123</ser:MappedID>
</ser:GetBrochure>
</soap:Body>
</soap:Envelope>