From: Jeremy McAnally Date: 2007-01-22T14:15:02+09:00 Subject: Re: Ruby Web Services Client String sendmsg = soapAction+".xml"; Ah it looks like you're using SOAP; check out the soap4r project. :) --Jeremy On 1/21/07, Peter Hollenbeck wrote: > Peter Hollenbeck wrote: > > Peter Hollenbeck wrote: > >> I have a simple web services client written in Java. The essence of it > >> is about 30 lines of code. It sends an XML message of about 20 lines to > >> a web service and receives an XML response that may be as many as 8000 > >> lines. I have searched the web and have bought the books Programming > >> Ruby and Agile Web Development with Rails but find nothing that leads me > >> to what I need. > >> > >> I would appreciate suggestions. > >> Peter > > > > Clarification of my above entry: > > It is implied but not stated that I want a Ruby program that does the > > same as my existing Java program. > > Peter > > Niko, > I guess all of the above. I have done a little with Ruby on Rails and > would like to use it, but don'r want to proceed until I solve this > problem. In my web searching I find documentation of several Ruby > protocol implementations but some are quite old. > > The Java code looks like this: > String soapAction = args[0]; > String sendmsg = soapAction+".xml"; > String urlString = "http://dealer.patagonia.com/za/PXM"; > try { > URL url = new URL(urlString); > HttpURLConnection httpConnection = > (HttpURLConnection) url.openConnection(); > httpConnection.setRequestProperty("SOAPAction", soapAction); > httpConnection.setDoOutput(true); > httpConnection.setDoInput(true); > httpConnection.setRequestMethod("POST"); > httpConnection.setRequestProperty("Content-Type", "text/xml"); > PrintStream httpout = new > PrintStream(httpConnection.getOutputStream()); > BufferedReader in = new BufferedReader(new > InputStreamReader(fis)); > /* Get first line of the outgoing message */ > String line = in.readLine(); > while (line != null) { > System.out.println(line); > /* Send the line to the http connection */ > httpout.print(line); > line = in.readLine(); > System.out.println("Reading the response stream ..."); > BufferedReader in2 = > new BufferedReader( > new InputStreamReader(httpConnection.getInputStream())); > System.out.println("Response:"); > String line = in2.readLine(); > while (line != null) { > if (line.length() > 2) > System.out.println(line); > line = in2.readLine(); > > I have fumbled around with Ruby HTTP but am getting nowhere. > I would appreciate any direction you can give. > Peter > > > > > -- > Posted via http://www.ruby-forum.com/. > > -- My free Ruby e-book: http://www.humblelittlerubybook.com/book/ My blogs: http://www.mrneighborly.com/ http://www.rubyinpractice.com/