On Tuesday 14 February 2006 08:15 pm, Dido Sevilla wrote: Please email NaHi nahi / ruby-lang.org and/or use the trac http://dev.ctor.org/soap4r Tsume > I've been tasked to interop with a SOAP gateway provided by another > company to access their service, and have tried to write a program > using the soap4r that's integrated with Ruby 1.8.4, based on some code > those people have written for Perl's SOAP::Lite. I've ran into strange > errors when attempting to make SOAP calls to their server, which is > apparently based on IIS. A wiredump shows the following: > > -> "HTTP/1.1 100 Continue\r\n" > -> "Server: Microsoft-IIS/5.0\r\n" > -> "Date: Tue, 14 Feb 2006 11:04:56 GMT\r\n" > -> "\r\n" > -> "HTTP/1.1 200 OK\r\n" > -> "Server: Microsoft-IIS/5.0\r\n" > -> "Date: Tue, 14 Feb 2006 11:05:06 GMT\r\n" > -> "Connection: close\r\n" > -> "HTTP/1.1 200 OK\r\n" > /usr/lib/ruby/1.8/net/http.rb:2006:in `each_response_header': wrong > header line format (Net::HTTPBadResponse) > from /usr/lib/ruby/1.8/net/http.rb:1979:in `read_new' > from /usr/lib/ruby/1.8/net/http.rb:1046:in `request' > from /usr/lib/ruby/1.8/net/http.rb:840:in `post' > from /usr/lib/ruby/1.8/soap/netHttpClient.rb:93:in `post' > from /usr/lib/ruby/1.8/soap/netHttpClient.rb:116:in `start' > from /usr/lib/ruby/1.8/net/http.rb:545:in `start' > from /usr/lib/ruby/1.8/soap/netHttpClient.rb:115:in `start' > from /usr/lib/ruby/1.8/soap/netHttpClient.rb:92:in `post' > from /usr/lib/ruby/1.8/soap/streamHandler.rb:170:in `send_post' > from /usr/lib/ruby/1.8/soap/streamHandler.rb:109:in `send' > from /usr/lib/ruby/1.8/soap/rpc/proxy.rb:170:in `route' > from /usr/lib/ruby/1.8/soap/rpc/proxy.rb:141:in `call' > from /usr/lib/ruby/1.8/soap/rpc/driver.rb:178:in `call' > from /usr/lib/ruby/1.8/soap/rpc/driver.rb:232:in `login' > from soaptest.rb:23 > > It appears that their IIS server resent the 'HTTP/1.1 200 OK' status > line, and that caused net/http to raise the wrong header line format > exception. The equivalent code with Perl and SOAP::Lite has no > problems making calls on their site. A desperate, one-line addition to > net/http.rb, after line 2003, adding the following: > > next if line =~ /^HTTP/ > > seems like it's able to work around the bug, and now my Ruby SOAP > program works alright. Of course, I'm not happy with this local patch > that I've done (an upgrade will instantly break my programs unless > this has been addressed), and am wondering if anyone else has > encountered this type of behavior with IIS or other HTTP servers, used > either in a SOAP context or otherwise. The fact that SOAP::Lite (0.66, > and libwww-perl 5.803) on Perl 5.8.7 had no trouble with their site > makes me feel that this is a bug. > > By the way, exact system description: Gentoo Linux, Ruby 1.8.4-r1, > soap4r 1.5.5. The same behavior manifests on Ruby 1.8.2.