From 81d1592ca9f9ff5cd47ca4678618f47040bb6360 Mon Sep 17 00:00:00 2001 From: Michael Koch Date: Tue, 30 Dec 2003 14:09:06 +0000 Subject: 2003-12-30 Michael Koch * gnu/java/net/protocol/http/Connection.java (outputStream): New field. (bufferedOutputStream): New field. (connect): Initialize outputStream and bufferedOutputStream. (sendRequest): Create PrintWriter object from outputStream, support HTTP 1.1, send missing HTTP headers and buffered output data for POST method. (getOutputStream): Set request method to POST if output stream is used, return bufferedOutputStream. (setRequestMethod): Allow HEAD and POST methods. This fixes libgcj PR/6302 and libgcj PR/7752. --- gnu/java/net/protocol/http/Connection.java | 41 ++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'gnu/java/net/protocol/http/Connection.java') diff --git a/gnu/java/net/protocol/http/Connection.java b/gnu/java/net/protocol/http/Connection.java index cea677230..d5b8f5205 100644 --- a/gnu/java/net/protocol/http/Connection.java +++ b/gnu/java/net/protocol/http/Connection.java @@ -52,6 +52,7 @@ import java.net.ProtocolException; import java.net.Socket; import java.net.URL; import java.net.URLConnection; +import java.util.HashMap; import java.util.Iterator; import java.util.Map; import gnu.java.net.HeaderFieldHelper; @@ -118,6 +119,11 @@ public final class Connection extends HttpURLConnection */ private ByteArrayOutputStream bufferedOutputStream; + /** + * This object holds the request properties. + */ + private HashMap requestProperties = new HashMap(); + /** * This is the object that holds the header field information */ @@ -410,6 +416,41 @@ public final class Connection extends HttpURLConnection method); } + public void addRequestProperty(String key, String value) + { + if (connected) + throw new IllegalStateException("Already connected"); + + String old = (String) requestProperties.put(key, value); + + if (old != null) + requestProperties.put(key, old + "," + value); + } + + public String getRequestProperty(String key) + { + if (connected) + throw new IllegalStateException("Already connected"); + + return (String) requestProperties.get(key); + } + + public void setRequestProperty(String key, String value) + { + if (connected) + throw new IllegalStateException("Already connected"); + + requestProperties.put(key, value); + } + + public Map getRequestProperties() + { + if (connected) + throw new IllegalStateException("Already connected"); + + return requestProperties; + } + public String getHeaderField(String name) { if (!connected) -- cgit v1.2.1