Hi Paul I'm trying to pass it to HttpClient - I'm writing a screen scraper (proxy). At the moment I have to enumerate the request parameters and pass them one by one to HttpClient - I have a feeling this won't work when I test it with a multipart encoded form (although I may be able to make use of the struts multipart stuff). It's a whole lot easier to write:
HttpClient client = new HttpClient(); HttpMethod method = new PostMethod(url.toString()); postMethod.setRequestBody(request.getInputStream()); Rob -----Original Message----- From: Paul McCulloch [mailto:[EMAIL PROTECTED] Sent: 15 July 2004 17:00 To: 'Struts Users Mailing List' Subject: RE: calling request.getInputStream() within Action Can I ask why you are after the binary content of the request? Paul > -----Original Message----- > From: Robert Shields [mailto:[EMAIL PROTECTED] > Sent: 15 July 2004 16:02 > To: Struts Users Mailing List > Subject: RE: calling request.getInputStream() within Action > > > Hi Bill > > Thanks for your response. > I've tried with a servlet too, but even without calling > request.getParameter the stream is still empty: > > > public class TestServlet extends HttpServlet { > ResourceBundle rb = ResourceBundle.getBundle("LocalStrings"); > > public void doGet(HttpServletRequest request, > HttpServletResponse response) > throws IOException, ServletException > { > int length = request.getContentLength(); // 18 > String contentType= request.getContentType(); > // application/x-www-form-urlencoded > > InputStream inputStream = request.getInputStream(); > int bytesAvailable = inputStream.available(); // 0 > > byte[] buf = new byte[1024]; > int bytesread; > > // bytesread is always -1 > while((bytesread = inputStream.read(buf)) != -1) > { > // do stuff > } > } > > public void doPost(HttpServletRequest request, > HttpServletResponse response) > throws IOException, ServletException > { > doGet(request, response); > } > } > > > This should work, right? > I'm starting to think something is wrong with my Tomcat! > > Regards, > Rob > > -----Original Message----- > From: news [mailto:[EMAIL PROTECTED] On Behalf Of Bill Siggelkow > Sent: 15 July 2004 14:16 > To: [EMAIL PROTECTED] > Subject: Re: calling request.getInputStream() within Action > > Robert, I found the following link that discusses this: > > http://archives.java.sun.com/cgi-bin/wa?A2=ind0106&L=jsp-inter > est&F=&S=& > P=49196 > > It sounds like you are correct -- if request.getParameter() has been > called you cannot get the input stream -- have you considered using a > Servlet instead? > > Robert Shields wrote: > > > Hi Struts Users > > > > I'm trying to get the InputStream to read the binary contents of the > > request within an Action's execute method. E.g. > > > > > > > > public ActionForward execute( > > ActionMapping mapping, > > ActionForm form, > > HttpServletRequest request, > > HttpServletResponse response) > > throws IOException, ServletException { > > > > InputStream inputStream = request.getInputStream(); > > > > // bytesAvailable is always 0 > > int bytesAvailable = inputStream.available(); > > > > int bytesRead; > > byte[] buf = new byte[1024]; > > while((bytesRead = inputStream.read(buf)) != -1) > > { > > // do stuff > > } > > } > > > > So bytesAvailable is always 0, and inputStream.read(buf) immediately > > returns -1. > > > > I have heard that calling request.getParamter() before trying to > access > > the input stream can affect accessing the input stream. I believe > struts > > calls request.getParamter (it must do to populate the form bean). > > > > My question is, how can I get access to the entire binary > contents of > > the HTTP body? > > > > I'm using Tomcat 5.0.25 BTW > > > > TIA > > Rob > > > > > > This e-mail has been scanned for all viruses by Star Internet. The > > service is powered by MessageLabs. For more information on > a proactive > > anti-virus service working around the clock, around the > globe, visit: > > http://www.star.net.uk > > > _____________________________________________________________________ > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > This e-mail has been scanned for all viruses by Star Internet. The > service is powered by MessageLabs. For more information on a proactive > anti-virus service working around the clock, around the globe, visit: > http://www.star.net.uk > _____________________________________________________________________ > > > This e-mail has been scanned for all viruses by Star Internet. The > service is powered by MessageLabs. For more information on a proactive > anti-virus service working around the clock, around the globe, visit: > http://www.star.net.uk > _____________________________________________________________________ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > ********************************************************************** Axios Email Confidentiality Footer Privileged/Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone. In such case, you should destroy this message, and notify us immediately. If you or your employer does not consent to Internet email messages of this kind, please advise us immediately. Opinions, conclusions and other information expressed in this message are not given or endorsed by my Company or employer unless otherwise indicated by an authorised representative independent of this message. WARNING: While Axios Systems Ltd takes steps to prevent computer viruses from being transmitted via electronic mail attachments we cannot guarantee that attachments do not contain computer virus code. You are therefore strongly advised to undertake anti virus checks prior to accessing the attachment to this electronic mail. Axios Systems Ltd grants no warranties regarding performance use or quality of any attachment and undertakes no liability for loss or damage howsoever caused. ********************************************************************** --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] This e-mail has been scanned for all viruses by Star Internet. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk _____________________________________________________________________ This e-mail has been scanned for all viruses by Star Internet. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk _____________________________________________________________________ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]