aspose file tools*
The moose likes Servlets and the fly likes Incomplete Request At Server Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "Incomplete Request At Server " Watch "Incomplete Request At Server " New topic
Author

Incomplete Request At Server

poruporuthan poruporuthan
Greenhorn

Joined: Dec 03, 2003
Posts: 2
Hi everybody,
I have a problem while sending large requests(in XML format) to a servlet over a secure http connection. I am using HttpsURLConnection to send the request.
At the server end, when i try to get the content length using getContentLength(), it shows correct value. But the InputStream object's available() method returns a smaller value and so does the read method when trying to read the data. I have tried using readFully to read getContentLength() amount of data, but with the same result.
Servlet works fine with smaller requests.
The client side code for sending the request is as follows:
HttpsURLConnection objConnection = ...
OutputStream out = objConnection.getOutputStream();
byte buffer[]=strRequestXML.getBytes();
out.write(buffer);
out.flush();
out.close();
Are there any properties to be set at either client or server end?
ANY HELP IS VERY MUCH APPRECIATED.
Regards,
Roshan
Mark Spritzler
ranger
Sheriff

Joined: Feb 05, 2001
Posts: 17250
    
    6

"Poruporuthan"-
Welcome to the JavaRanch! Please adjust your displayed name to meet the
JavaRanch Naming Policy.
You can change it
here.
Thanks! and welcome to the JavaRanch!
Mark


Perfect World Programming, LLC - Two Laptop Bag - Tube Organizer
How to Ask Questions the Smart Way FAQ
Pravin Panicker
Ranch Hand

Joined: Oct 05, 2000
Posts: 62
Dear Roshan,
Good 2 meet you here
I dunno the exact nature of your problem. Hope you must've solved it now. If yes please post what went wrong.
First of all at the client side, make sure that the xml string you r writing to outputStream is of the proper size. print the byte[] size and verify.
Next, If you are getting proper size @ the server side, but available() is returning lesser value, applying a small time delay could help before reading the string at the server side.
If you could show the server side snippet for reading the data, then could apply some thoughts.


Pravin R Panicker<br />SCJP,SCWCD
William Brogden
Author and all-around good cowpoke
Rancher

Joined: Mar 22, 2000
Posts: 12769
    
    5
The available method only shows whats currently in the input buffer, given the way that TCP/IP sends chunks of data, this will only be the entire message for very small messages.
The simplest thing to do is read and parse the data as a stream until the end is hit.
If you absolutely have to have all the text in memory in a single chunk, you must repeatedly read characters as they come in and assemble the chunk yourself.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Incomplete Request At Server