Using HttpConnection in J2ME (Retrieve web content from a website to a phone)

By: David Hemphill Emailed: 1696 times Printed: 2200 times    

Latest comments
By: rohit kumar - how this program is work
By: Kirti - Hi..thx for the hadoop in
By: Spijker - I have altered the code a
By: ali mohammed - why we use the java in ne
By: ali mohammed - why we use the java in ne
By: mizhelle - when I exported the data
By: raul - no output as well, i'm ge
By: Rajesh - thanx very much...
By: Suindu De - Suppose we are executing

This J2ME example will cover reading data using the MIDP HttpConnection. Note that this connection interface is not part of the CLDC or CDC, but is defined rather in the MIDP and Personal Profiles themselves. The behavior of HttpConnection is one that combines an InputStream and an OutputStream into a single connection. A single HttpConnection may open and use exactly one OutputStream and exactly one InputStream. The order in which the streams are used is important as well. The OutputStream, if used, must be used before the InputStream. Once the streams have been used the connection should be closed and a new HttpConnection should be opened to continue communications if necessary. This follows the HTTP request-response paradigm.

The HttpConnection is a bit more tricky to use than the socket or datagram connections because there is a lot that happens behind the scenes. There are three states to an HttpConnection:

  • Setup
  • Connected
  • Closed
The setup state is the first state encountered after a connection is opened. While in this state, connection parameters can be set such as the request method (GET, POST or HEAD) using the setRequestMethod() method or any header properties using the setRequestProperty() method.

The transition from setup to connected is triggered by any methods that cause data to be sent to the server. The following is a list of methods that cause this transition.

  • openInputStream
  • openDataInputStream
  • getLength
  • getType
  • getEncoding
  • getHeaderField
  • getResponseCode
  • getResponseMessage
  • getHeaderFieldInt
  • getHeaderFieldDate
  • getExpiration
  • getDate
  • getLastModified
  • getHeaderField
  • getHeaderFieldKey
Once the connection transitions to the connected state, any calls to setRequestMethod() and setRequestProperty() will throw an IOException. The state transition from setup to connected reflects the underlying handshake of the HttpConnection as headers are sent to the server and the connection prepares to send data. The following example demonstrates reading Web content from an HttpConnection.

HttpConnection c = null;
InputStream is = null;
StringBuffer sb = new StringBuffer();
try {
  c = (HttpConnection)Connector.open(
     "http://www.java-samples.com”, 
     Connector.READ_WRITE, true);
  c.setRequestMethod(HttpConnection.GET); //default
  is = c.openInputStream(); // transition to connected!
  int ch = 0;
  for(int ccnt=0; ccnt < 150; ccnt++) { // get the title.
    ch = is.read();
    if (ch == -1){
      break;
    }
    sb.append((char)ch);
  }
}
catch (IOException x){
	x.printStackTrace();
}
finally{
     try     {
       is.close();
          c.close();
     } catch (IOException x){
          x.printStackTrace();
     }
}
System.out.println(sb.toString());
In this example, the server at www.java-samples.com is contacted. Because this is an HttpConnection and no port is specified, port 80 is used by default. The request method is set to GET (note GET is the default and is explicitly set here only for the example).

J2ME Home | All J2ME Tutorials | Latest J2ME Tutorials

Sponsored Links

If this tutorial doesn't answer your question, or you have a specific question, just ask an expert here. Post your question to get a direct answer.



Bookmark and Share

Comments(2)


1. View Comment

Hi.. I tried it on blackberry... I have a problem with the connection

View Tutorial          By: jeremejazz at 2011-01-12 22:56:02
2. View Comment

What if the MIDlet has an sms push registry, but on the same time, it is required to open an HttpConnection ?

View Tutorial          By: indra at 2011-07-08 09:21:54

Your name (required):


Your email(required, will not be shown to the public):


Your sites URL (optional):


Your comments:



More Tutorials by David Hemphill
Using HTTP vs UDP vs Socket in J2ME
Using HttpConnection in J2ME (Retrieve web content from a website to a phone)
Client Server in J2ME (Socket Programming sample)
Datagrams in J2ME (UDP Programming sample)

More Tutorials in J2ME
Code sample to Send SMS from a J2ME application.
Adding your own Application icon for your J2ME application (jar file)
Play a multimedia file in J2ME Program (Audio/Video) using MMAPI
Datagrams in J2ME (UDP Programming sample)
Client Server in J2ME (Socket Programming sample)
Using HttpConnection in J2ME (Retrieve web content from a website to a phone)
Using HTTP vs UDP vs Socket in J2ME
RMSCookieConnector - Using Cookies in J2ME
POST UTF-8 encoded data to the server in J2ME
lists, forms, choices, gauges, text fields, text boxes in J2ME
Using List to create a Menu and Menu items in J2ME
Using alerts and tickers in J2ME
J2ME Canvas sample to show games programming in J2ME
Timer and TimerTask example in J2ME
List of GPRS Access points for all countries

More Latest News
Most Viewed Articles (in J2ME )
lists, forms, choices, gauges, text fields, text boxes in J2ME
Using HttpConnection in J2ME (Retrieve web content from a website to a phone)
'LINK.EXE' is not recognized as an internal or ext
Sample Java program shows how to Read a file over a network using J2ME midlet
List of GPRS Access points for all countries
Download a file over a network in J2ME midlet
Y.S. Sun Green Building Research Center
Sample J2ME code that shows various functionality of RMS.
GUI components and menu based J2ME Applications.
DateField sample program in J2ME
Ticker sample program in J2ME
RMS Basics in J2ME
Timer and TimerTask example in J2ME
POST UTF-8 encoded data to the server in J2ME
Adding your own Application icon for your J2ME application (jar file)
Most Emailed Articles (in J2ME)
What is J2ME?
Download a file over a network in J2ME midlet
TextBox sample program in J2ME
Sample program to draw a arc in J2ME
Client Server in J2ME (Socket Programming sample)
'LINK.EXE' is not recognized as an internal or ext
Image and ImageItem sample program in J2ME
Sample program to draw a rectangle in J2ME
RMS Basics in J2ME
Types of configurations in J2ME
Types of Profiles in J2ME
A sample J2ME Auto-resume program.
lists, forms, choices, gauges, text fields, text boxes in J2ME
Using alerts and tickers in J2ME
Datagrams in J2ME (UDP Programming sample)