Java URLConnection Class
java.net.URLConnection, is an abstract class whose subclasses represent the various types of URL connections. Instances of this class can be used both to read from and to write to the resource referenced by the URL.
For example −
-
If you connect to a URL whose protocol is HTTP, the URL.openConnection() method returns an HttpURLConnection object.
-
If you connect to a URL that represents a JAR file, the URL.openConnection() method returns a JarURLConnection object, etc.
Steps to make a connection to a URL
Following are the steps to make a connectiion to the URL and start processing.
-
Invoke URL.openConnection() method to get connection object.
-
Update setup parameters and general request properties as required using connection object various setter methods.
-
Create a connection to remote object using connect() method of connection object.
-
Once remote object is available, access the content/headers of the remote object.
URLConnection Class Declaration
public abstract class URLConnection extends Object
URLConnection Class Fields
Sr.No. | Field & Description |
---|---|
1 |
protected boolean allowUserInteraction If true, this URL is being examined in a context in which it makes sense to allow user interactions such as popping up an authentication dialog. |
2 |
protected boolean connected If false, this connection object has not created a communications link to the specified URL. |
3 |
protected boolean doInput This variable is set by the setDoInput method. |
3 |
protected boolean doOutput This variable is set by the setDoOutput method. |
4 |
protected long ifModifiedSince Some protocols support skipping the fetching of the object unless the object has been modified more recently than a certain time. |
5 |
protected URL url The URL represents the remote object on the World Wide Web to which this connection is opened. |
6 |
protected boolean useCaches If true, the protocol is allowed to use caching whenever it can. |
URLConnection Class Methods
The URLConnection class has many methods for setting or determining information about the connection, including the following −
Sr.No. | Method & Description |
---|---|
1 |
Adds a general request property specified by a key-value pair. |
2 |
Returns the value of the allowUserInteraction field for this object. |
3 |
Returns setting for connect timeout. |
4 |
Retrieves the contents of this URL connection. |
5 |
Retrieves the contents of this URL connection. |
6 |
Returns the value of the content-encoding header field. |
7 |
Returns the value of the content-length header field. |
8 |
Returns the value of the content-length header field as long. |
9 |
Returns the value of the content-type header field. |
10 |
Returns the value of the date header field. |
11 |
Returns the default value of the allowUserInteraction field. |
12 |
Returns the default value of a URLConnection”s useCaches flag. |
13 |
Returns the default value of the useCaches flag for the given protocol. |
14 |
Returns the value of this URLConnection”s doInput flag. |
15 |
Returns the value of this URLConnection”s doOutput flag. |
16 |
Returns the value of the expires header field. |
17 |
Loads filename map (a mimetable) from a data file. |
18 |
Returns the value for the nth header field. |
19 |
Returns the value of the named header field. |
20 |
Returns the value of the named field parsed as date. |
21 |
Returns the value of the named field parsed as a number. |
22 |
Returns the key for the nth header field. |
23 |
Returns the value of the named field parsed as a number. |
24 |
Returns an unmodifiable Map of the header fields. |
25 |
Returns the value of this object”s ifModifiedSince field. |
26 |
Returns an input stream that reads from this open connection. |
27 |
Returns the value of the last-modified header field. |
28 |
OutputStream getOutputStream() Returns an output stream that writes to this connection. |
29 |
Returns a permission object representing the permission necessary to make the connection represented by this object. |
30 |
Returns setting for read timeout. 0 return implies that the option is disabled (i.e., timeout of infinity). |
31 |
Returns an unmodifiable Map of general request properties for this connection. |
32 |
Returns the value of the named general request property for this connection. |
33 |
Returns the value of this URLConnection”s URL field. |
34 |
Returns the value of this URLConnection”s useCaches field. |
35 |
Tries to determine the content type of an object, based on the specified “file” component of a URL. |
36 |
Tries to determine the type of an input stream based on the characters at the beginning of the input stream. |
37 |
Set the value of the allowUserInteraction field of this URLConnection. |
38 |
Sets a specified timeout value, in milliseconds, to be used when opening a communications link to the resource referenced by this URLConnection. |
39 |
Sets the ContentHandlerFactory of an application. |
40 |
Sets the default value of the allowUserInteraction field for all future URLConnection objects to the specified value. |
41 |
Sets the default value of the useCaches field to the specified value. |
42 |
Sets the default value of the useCaches field for the named protocol to the given value. |
43 |
Sets the value of the doInput field for this URLConnection to the specified value. |
44 |
Sets the value of the doOutput field for this URLConnection to the specified value. |
45 |
static void setFileNameMap(FileNameMap map) Sets the FileNameMap. |
46 |
Sets the value of the ifModifiedSince field of this URLConnection to the specified value. |
47 |
Sets the read timeout to a specified timeout, in milliseconds. |
48 |
Sets the general request property. |
49 |
Sets the value of the useCaches field of this URLConnection to the specified value. |
50 |
Returns a String representation of this URL connection. |
Extends
This class extends following classes
-
java.lang.Object
Example of URLConnection Class Methods
The following URLConnectionDemo program connects to a URL entered from the command line.
If the URL represents an HTTP resource, the connection is cast to HttpURLConnection, and the data in the resource is read one line at a time.
package com.tutorialspoint; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; public class URLConnectionDemo { public static void main(String [] args) { try { URL url = new URL("https://www.tutorialspoint.com"); URLConnection urlConnection = url.openConnection(); HttpURLConnection connection = null; if(urlConnection instanceof HttpURLConnection) { connection = (HttpURLConnection) urlConnection; }else { System.out.println("Please enter an HTTP URL."); return; } BufferedReader in = new BufferedReader( new InputStreamReader(connection.getInputStream())); String urlString = ""; String current; while((current = in.readLine()) != null) { urlString += current; } System.out.println(urlString); } catch (IOException e) { e.printStackTrace(); } } }
A sample run of this program will produce the following result −
Output
$ java URLConnectionDemo .....a complete HTML content of home page of tutorialspoint.com.....