diff options
author | Bryce McKinlay <bryce@gcc.gnu.org> | 2000-08-10 10:10:25 +0100 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2000-08-10 10:10:25 +0100 |
commit | b6ac804e3d3e38f8c9b9974b0e17ce70673209e8 (patch) | |
tree | c83f347809df3815635d9eb31211347f39ca2f5a /libjava/java/net/HttpURLConnection.java | |
parent | 9052d3bebc0b9420a5f9cd8907f5b5c405e7cf7d (diff) | |
download | gcc-b6ac804e3d3e38f8c9b9974b0e17ce70673209e8.zip gcc-b6ac804e3d3e38f8c9b9974b0e17ce70673209e8.tar.gz gcc-b6ac804e3d3e38f8c9b9974b0e17ce70673209e8.tar.bz2 |
Connection.java (gotHeaders): Removed.
2000-08-10 Bryce McKinlay <bryce@albatross.co.nz>
John Stracke <francis@ecal.com>
* gnu/gcj/protocol/http/Connection.java (gotHeaders): Removed.
(connect): Don't falsely claim HTTP/1.1 compliance. Call
getHttpHeaders().
(disconnect): Don't unset connected flag.
(getHeaderField (String)): Call connect() if not connected.
(getHeaderField (int)): Ditto.
(getHeaderFieldKey): Ditto.
(getHttpHeaders): Don't call connect().
* java/net/HttpURLConnection.java (instanceFollowRedirects,
gotResponseVals): New fields.
(getResponseCode): Call getResponseVals() conditionally.
(getResponseMessage): Ditto.
(getResponseVals): Call connect(). Don't throw
FileNotFoundException.
From-SVN: r35603
Diffstat (limited to 'libjava/java/net/HttpURLConnection.java')
-rw-r--r-- | libjava/java/net/HttpURLConnection.java | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/libjava/java/net/HttpURLConnection.java b/libjava/java/net/HttpURLConnection.java index 673cc8a..84e9468 100644 --- a/libjava/java/net/HttpURLConnection.java +++ b/libjava/java/net/HttpURLConnection.java @@ -1,7 +1,7 @@ // HttpURLConnection.java - Subclass of communications links using // Hypertext Transfer Protocol. -/* Copyright (C) 1999 Free Software Foundation +/* Copyright (C) 1999, 2000 Free Software Foundation This file is part of libgcj. @@ -69,11 +69,14 @@ public abstract class HttpURLConnection extends URLConnection public static final int HTTP_GATEWAY_TIMEOUT = 504; public static final int HTTP_VERSION = 505; + static boolean followRedirects = true; + protected String method = "GET"; protected int responseCode = -1; protected String responseMessage; + protected boolean instanceFollowRedirects = followRedirects; - static boolean followRedirects = true; + private boolean gotResponseVals = false; protected HttpURLConnection(URL url) { @@ -121,21 +124,30 @@ public abstract class HttpURLConnection extends URLConnection public int getResponseCode() throws IOException { - getResponseVals(); + if (!gotResponseVals) + getResponseVals(); return responseCode; } public String getResponseMessage() throws IOException { - getResponseVals(); + if (!gotResponseVals) + getResponseVals(); return responseMessage; } private void getResponseVals() throws IOException { + // getHeaderField() will connect for us, but do it here first in + // order to pick up IOExceptions. + if (!connected) + connect(); + + gotResponseVals = true; // Response is the first header received from the connection. String respField = getHeaderField(0); - if (! respField.startsWith("HTTP/")) + + if (respField == null || ! respField.startsWith("HTTP/")) { // Set to default values on failure. responseCode = -1; @@ -158,10 +170,6 @@ public abstract class HttpURLConnection extends URLConnection responseCode = -1; responseMessage = null; } - if (responseCode == HTTP_NOT_FOUND) - throw new FileNotFoundException(url.toString()); - else if (responseCode >= 400) - throw new IOException(url.toString() + " " + respField); } // TODO12: public Permission getPermission() throws IOException |