Initial revision
From-SVN: r26263
This commit is contained in:
parent
140fa895c6
commit
ee9dd3721b
370 changed files with 173494 additions and 0 deletions
174
libjava/java/net/HttpURLConnection.java
Normal file
174
libjava/java/net/HttpURLConnection.java
Normal file
|
@ -0,0 +1,174 @@
|
|||
// HttpURLConnection.java - Subclass of communications links using
|
||||
// Hypertext Transfer Protocol.
|
||||
|
||||
/* Copyright (C) 1999 Cygnus Solutions
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.net;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@cygnus.com>
|
||||
* @date March 29, 1999.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Written using on-line Java Platform 1.2 API Specification, as well
|
||||
* as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
|
||||
* Status: Believed complete and correct.
|
||||
*/
|
||||
|
||||
public abstract class HttpURLConnection extends URLConnection
|
||||
{
|
||||
/* HTTP Success Response Codes */
|
||||
public static final int HTTP_OK = 200;
|
||||
public static final int HTTP_CREATED = 201;
|
||||
public static final int HTTP_ACCEPTED = 202;
|
||||
public static final int HTTP_NOT_AUTHORITATIVE = 203;
|
||||
public static final int HTTP_NO_CONTENT = 204;
|
||||
public static final int HTTP_RESET = 205;
|
||||
public static final int HTTP_PARTIAL = 206;
|
||||
|
||||
/* HTTP Redirection Response Codes */
|
||||
public static final int HTTP_MULT_CHOICE = 300;
|
||||
public static final int HTTP_MOVED_PERM = 301;
|
||||
public static final int HTTP_MOVED_TEMP = 302;
|
||||
public static final int HTTP_SEE_OTHER = 303;
|
||||
public static final int HTTP_NOT_MODIFIED = 304;
|
||||
public static final int HTTP_USE_PROXY = 305;
|
||||
|
||||
/* HTTP Client Error Response Codes */
|
||||
public static final int HTTP_BAD_REQUEST = 400;
|
||||
public static final int HTTP_UNAUTHORIZED = 401;
|
||||
public static final int HTTP_PAYMENT_REQUIRED = 402;
|
||||
public static final int HTTP_FORBIDDEN = 403;
|
||||
public static final int HTTP_NOT_FOUND = 404;
|
||||
public static final int HTTP_BAD_METHOD = 405;
|
||||
public static final int HTTP_NOT_ACCEPTABLE = 406;
|
||||
public static final int HTTP_PROXY_AUTH = 407;
|
||||
public static final int HTTP_CLIENT_TIMEOUT = 408;
|
||||
public static final int HTTP_CONFLICT = 409;
|
||||
public static final int HTTP_GONE = 410;
|
||||
public static final int HTTP_LENGTH_REQUIRED = 411;
|
||||
public static final int HTTP_PRECON_FAILED = 412;
|
||||
public static final int HTTP_ENTITY_TOO_LARGE = 413;
|
||||
public static final int HTTP_REQ_TOO_LONG = 414;
|
||||
public static final int HTTP_UNSUPPORTED_TYPE = 415;
|
||||
|
||||
/* HTTP Server Error Response Codes */
|
||||
public static final int HTTP_SERVER_ERROR = 500;
|
||||
public static final int HTTP_INTERNAL_ERROR = 501;
|
||||
public static final int HTTP_BAD_GATEWAY = 502;
|
||||
public static final int HTTP_UNAVAILABLE = 503;
|
||||
public static final int HTTP_GATEWAY_TIMEOUT = 504;
|
||||
public static final int HTTP_VERSION = 505;
|
||||
|
||||
protected String method = "GET";
|
||||
protected int responseCode = -1;
|
||||
protected String responseMessage;
|
||||
|
||||
static boolean followRedirects = true;
|
||||
|
||||
protected HttpURLConnection(URL url)
|
||||
{
|
||||
super(url);
|
||||
}
|
||||
|
||||
public abstract void disconnect();
|
||||
|
||||
public abstract boolean usingProxy();
|
||||
|
||||
public static void setFollowRedirects(boolean set)
|
||||
{
|
||||
// Throw an exception if an extant security mgr precludes
|
||||
// setting the factory.
|
||||
SecurityManager s = System.getSecurityManager();
|
||||
if (s != null)
|
||||
s.checkSetFactory();
|
||||
|
||||
followRedirects = set;
|
||||
}
|
||||
|
||||
public static boolean getFollowRedirects()
|
||||
{
|
||||
return followRedirects;
|
||||
}
|
||||
|
||||
public void setRequestMethod(String method) throws ProtocolException
|
||||
{
|
||||
if (connected)
|
||||
throw new ProtocolException("Already connected");
|
||||
|
||||
if (method.equals("GET") || method.equals("POST") ||
|
||||
method.equals("HEAD") || method.equals("OPTIONS") ||
|
||||
method.equals("PUT") || method.equals("DELETE") ||
|
||||
method.equals("TRACE"))
|
||||
this.method = method;
|
||||
else
|
||||
throw new ProtocolException("Invalid HTTP request method");
|
||||
}
|
||||
|
||||
public String getRequestMethod()
|
||||
{
|
||||
return method;
|
||||
}
|
||||
|
||||
public int getResponseCode() throws IOException
|
||||
{
|
||||
getResponseVals();
|
||||
return responseCode;
|
||||
}
|
||||
|
||||
public String getResponseMessage() throws IOException
|
||||
{
|
||||
getResponseVals();
|
||||
return responseMessage;
|
||||
}
|
||||
|
||||
private void getResponseVals() throws IOException
|
||||
{
|
||||
// Response is the first header received from the connection.
|
||||
String respField = getHeaderField(0);
|
||||
if (! respField.startsWith("HTTP/"))
|
||||
{
|
||||
// Set to default values on failure.
|
||||
responseCode = -1;
|
||||
responseMessage = null;
|
||||
return;
|
||||
}
|
||||
|
||||
int firstSpc, nextSpc;
|
||||
firstSpc = respField.indexOf(' ');
|
||||
nextSpc = respField.indexOf(' ', firstSpc + 1);
|
||||
responseMessage = respField.substring(nextSpc + 1);
|
||||
String codeStr = respField.substring(firstSpc + 1, nextSpc);
|
||||
try
|
||||
{
|
||||
responseCode = Integer.parseInt(codeStr);
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
// Set to default values on failure.
|
||||
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
|
||||
// {
|
||||
// }
|
||||
|
||||
// TODO12: public InputStream getErrorStream()
|
||||
// {
|
||||
// }
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue