0

次のコードを使用して、SOAP Webサービスと通信するようにRailsアプリを構成しようとしています:

client = Savon::Client.new do
  wsdl.document = "http://services.carsolize.com/BookingServices/dynamicdataservice.svc?wsdl"
end

response = client.request "ServiceRequest", "xmlns" => "http://tempuri.org/" do |soap, wsdl|
  client.http.headers["SOAPAction"] = '"http://tempuri.org/IDynamicDataService/ServiceRequest"'
  soap.body = {
    "rqst" => {
      "Credentials" => {
        "UserName" => 'user',
        "Password"  => 'pass'
      },
      "RequestType" => "Login", 
      "TypeOfService" => "Unknown",
    },
  }
end

しかし、私が得るのは、応答で始まる行の HomeController#index の Savon::HTTP::Error (およびそれ以上の情報はありません) だけです。

4

2 に答える 2

0

私はこの方法でそれをやろうとしました

client = Savon.client 'http://services.carsolize.com/BookingServices/dynamicdataservice.svc?wsdl'

username = '*********'
password = '*********'

response = client.request :wsdl, :login do
  http.headers["SOAPAction"] = '"http://tempuri.org/IDynamicDataService/ServiceRequest"'
  soap.xml = "<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><ServiceRequest xmlns='http://tempuri.org/'><rqst xmlns:i='http://www.w3.org/2001/XMLSchema-instance'><Credentials xmlns=''>
  <Password>#{password}</Password><UserName>#{username}</UserName></Credentials><RequestType xmlns=''>Login</RequestType><TypeOfService xmlns=''>Unknown</TypeOfService></rqst></ServiceRequest></s:Body></s:Envelope>"
end

そして、それはうまく動作します

于 2013-02-15T10:07:00.020 に答える