At 08:12 PM 7/18/2001 +0200, Joseph George wrote:
>Hi,
>How do I extract the soap part of a http request in a java servlet? For example,
>suppose my client sends a soap request to
><http://localhost:8080/servlets/TestServlet>http://localhost:8080/servlets/TestServlet
> and i want to print out the body of the soap request...how do i do that in
>TestServlet? Thanks
Well, look at RPCRouterServlet.java and you'll see that the body comes in via
req.getInputStream()
which is being passed to something which passes it to something which passes it to a
new TransportMessage(..)
which does a
> while ((offset < contentLength) && (bytesRead >= 0)) {
> bytesRead = is.read(bytes, offset, contentLength - offset);
> offset += bytesRead;
So presumably you can make that work, or you might prefer to make it a reader...
InputStreamReader reader=new InputStreamReader(is,"iso-8859-1");
StringWriter sw=new java.io.StringWriter();
for(int ch=reader.read();ch>=0;ch=reader.read())sw.write((char)ch);
String resString=sw.toString();
(clipped from something I was looking at anyway; this will of course be slower
than the byte-array approach, but you don't have to think about the contentlength.)
Or am I missing something again?
Tom Myers