HttpURLConnection is basically a URLConnection of HTTP.
Uses of HttpURLConnection
It’s mainly used to send and receive data over the web. To make Http Requests.
Which data can be sent?
Well you can send any type of data over the web. From simple data types to complex data types like binary data.
That data may also be of any length.
You can even use HttpURLConnection to send and receive streams of data whose length is not know in advance.
Characteristics of HttpURLConnection
Let’s look at the programmatic nature of this very important class.
- First it belongs to java.net package:
package java.net;
- It’s an abstract class:
public abstract class HttpURLConnection..{}
- It derives from java.net.URLConnection:
public abstract class HttpURLConnection extends URLConnection{}
HttpURLConnection children
This class has one child/subclass:
Class | Description |
---|---|
HttpsURLConnection | This is the HttpURLConnection for HTTPS. |
How to work with HttpURLConnection
- HttpURLConnection instance is normally obtained by casting a URLConnection object to HttpURLConnection. That URLConnection is first of all obtained via a call to
openConnection()
method of the URL class. - The above has given us a connection, so you need to prepare the request that you plan to make. Your request’s primary request is it’s URI. Your request headers may further contain metadata like session cookies, credentials etc.
- You can also send your request body. To do this you have to configure your HttpURLConnection by invoking the it’s
setDoOutput(true)
, passing in true. You then send your data by writing it to a stream returned bygetOutputStream()
. - You can then read the returned response. The response headers can include metadata like body’s content type, length,sesssion cookies etc. The response body, you read from a stream. That stream you get by invoking the
getInputStream()
. - Lastly you disconnect from the connection once you’ve read the body. You do this by invoking the
disconnect()
method.This will free up the resources your connection was holding to.