From: "Mark A. Richman" Date: 2006-09-22T00:10:15+09:00 Subject: Re: SOAP Envelope Error I figured out that 90% of my problem was a trailing slash in my namespace! I get a valid response from ASP.NET now. However, my final question is how to convert my result into a boolean. I get this object as a result now: # Here's my code: require 'soap/rpc/driver' include SOAP::RPC URL = "http://web001whp001:3250/Wahp.Provisioning/User.asmx" NS = "http://affinity.com/Wahp/Provisioning" SOAP_ACTION = "http://affinity.com/Wahp/Provisioning/IsValidLogin" USERNAME = "SHARED\\Administrator" PASSWORD = "$secure$" class AuthenticationClient def initialize() @driver = Driver.new(URL,NS,SOAP_ACTION) @driver.wiredump_dev = STDOUT @driver.options["protocol.http.basic_auth"] << [URL, USERNAME, PASSWORD] @driver.add_document_method('IsValidLogin',SOAP_ACTION, [XSD::QName.new(NS,'IsValidLogin')], [XSD::QName.new(NS,'IsValidLoginResult')]) result = @driver.IsValidLogin(:username=>"Username",:password=>"Password") end end AuthenticationClient.new And here is my SOAP response: HTTP/1.1 200 OK Date: Thu, 21 Sep 2006 14:41:58 GMT Server: Microsoft-IIS/6.0 MicrosoftOfficeWebServer: 5.0_Pub X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Cache-Control: private, max-age=0 Content-Type: text/xml; charset=utf-8 Content-Length: 383 false Thanks, Mark Werner Bohl wrote: > Mark A. Richman wrote: > > soap4r is generating this: > > > > POST /Wahp.Provisioning/User.asmx HTTP/1.1 > > SOAPAction: "http://affinity.com/Wahp/Provisioning/IsValidLogin" > > Content-Type: text/xml; charset=utf-8 > > Authorization: Basic U0hBUkVEXuaXN0cmF0b3I6JZSQ= > > User-Agent: SOAP4R/1.5.5 (/114, ruby 1.8.5 (2006-08-25) [i386-mswin32]) > > Date: Wed Sep 20 13:44:12 -0400 2006 > > Content-Length: 437 > > Host: web001whp001:3250 > > > > > > > xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > > > > > > Username > > Password > > > > > > > > > > My service expects this: > > > > POST /Wahp.Provisioning/User.asmx HTTP/1.1 > > Host: web001whp001 > > Content-Type: text/xml; charset=utf-8 > > Content-Length: length > > SOAPAction: "http://affinity.com/Wahp/Provisioning/IsValidLogin" > > > > > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> > > > > > > string > > string > > > > > > > > > > What am I doing wrong? > > > > class Test > > def initialize() > > @driver = Driver.new(URL,NS) > > @driver.wiredump_dev = STDOUT > > @driver.options["protocol.http.basic_auth"] << [URL, USERNAME, > > PASSWORD] > > @driver.default_encodingstyle = > > SOAP::EncodingStyle::ASPDotNetHandler::Namespace > > > > @driver.add_method_with_soapaction('IsValidLogin',SOAP_ACTION,'username','password') > > puts @driver.IsValidLogin("Username","Password") > > end > > end > > > > - Mark > > > > > > > > > I had the same exact problem with one of our data providers, and found > no way to make it work with > soap4r nor JOpera (a java based service orchestrator) nor some other > java wsdl tools tried. > So from strict xml point of view this wsdls are equivalent, but most > non-windoze wsdl parsers choke on it. > Luckily our provider was considering migrating to Java+Axis, and this > "feature" of .NET convinced them, > so this became a non-issue for me. > > Werner Bohl > > --Boundary_(ID_ixlm4ZaFFHbqrroJILetBA) > Content-Type: text/x-vcard; charset=utf-8 > Content-Transfer-Encoding: 7BIT > Content-Disposition: inline; > filename="wbohl.vcf" > X-Google-AttachSize: 184 > > begin:vcard > fn:Werner Bohl > n:Bohl;Werner > email;internet:wbohl@racsa.co.cr > tel;work:506-291-1374 > tel;home:506-232-0398 > tel;cell:506-876-2744 > x-mozilla-html:TRUE > version:2.1 > end:vcard > > > --Boundary_(ID_ixlm4ZaFFHbqrroJILetBA)--