From: Matt Rose Date: 2006-09-22T09:42:33+09:00 Subject: Re: SOAP Envelope Error try object.inspect to see what methods and variables it contains. The answer you're looking for is probably hidden within Matt On 21-Sep-06, at 11:10 AM, Mark A. Richman wrote: > 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 > > xmlns:soap="http://schemas. > xmlsoap.org/soap/envelope/" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance > " > xmlns:xsd="http://www.w3.org/2001/ > XMLSchema"> xmlns="http://affinity.com/Wahp/ > Provisioning">false LoginResult> > > 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)-- >