+2004-01-23 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/net/protocol/http/Connection.java
+ (connect): Don't initialize bufferedOutputStream if not needed.
+ (sendRequest): Set property for content length if content is present.
+ Write content only if present.
+ (getOutputStream): Check if already connected, dont connect,
+ initalize bufferedOutputStream if needed.
+
2004-01-23 Michael Koch <konqueror@gmx.de>
* java/io/FileDescriptor.java
inputStream =
new DataInputStream(new BufferedInputStream(socket.getInputStream()));
outputStream = new BufferedOutputStream (socket.getOutputStream());
- bufferedOutputStream = new ByteArrayOutputStream (256); //default is too small
sendRequest();
receiveReply();
setRequestProperty ("Content-type", "application/x-www-form-urlencoded");
// Set correct content length.
- setRequestProperty ("Content-length", String.valueOf (bufferedOutputStream.size()));
+ if (bufferedOutputStream != null)
+ setRequestProperty ("Content-length", String.valueOf (bufferedOutputStream.size()));
// Write all req_props name-value pairs to the output writer.
Iterator itr = getRequestProperties().entrySet().iterator();
outputWriter.flush();
// Write content
- bufferedOutputStream.writeTo (outputStream);
- outputStream.flush();
+ if (bufferedOutputStream != null)
+ {
+ bufferedOutputStream.writeTo (outputStream);
+ outputStream.flush();
+ }
}
/**
*/
public OutputStream getOutputStream() throws IOException
{
+ if (connected)
+ throw new ProtocolException
+ ("You cannot get an outputstream for an existing http connection");
+
if (!doOutput)
throw new ProtocolException
("Want output stream while haven't setDoOutput(true)");
- if (!connected)
- connect();
+ if (bufferedOutputStream == null)
+ bufferedOutputStream = new ByteArrayOutputStream (256); //default is too small
return bufferedOutputStream;
}