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
This commit is contained in:
Bryce McKinlay 2000-08-10 10:10:25 +01:00
parent 9052d3bebc
commit b6ac804e3d
2 changed files with 58 additions and 52 deletions

View file

@ -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