From b6ac804e3d3e38f8c9b9974b0e17ce70673209e8 Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Thu, 10 Aug 2000 10:10:25 +0100 Subject: Connection.java (gotHeaders): Removed. 2000-08-10 Bryce McKinlay John Stracke * 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 --- libjava/java/net/HttpURLConnection.java | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'libjava/java/net/HttpURLConnection.java') 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 -- cgit v1.1