Fetching a Page Using a StreamConnection


This example demonstrates how to write network applications to retrieve information across the network using the HTTP protocol. It reads the contents of a file referenced by a URL using StreamConnection. There is no HTTP-specific behavior needed. The Connector.open opens a connection to the URL and returns a StreamConnection object. Then an InputStream is opened through which to read the contents of the file, character by character, until the end of the file (-1). In the event an exception is thrown, both the stream and connection are closed.

 FirstExample.java 

import java.io.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;


public class  FirstExample  extends MIDlet {
  private Display  display;
  String  url = "http://people.aero.und.edu/~wenchen/hello.txt";

  public  FirstExample( ) {
    display = Display.getDisplay( this );
  }


  /******************************************************************
  *          This will be invoked when we start the MIDlet.         *
  ******************************************************************/
  public void startApp( ) {
    try {
      getViaStreamConnection( url );
    } catch ( IOException e ) {
      //Handle Exceptions any other way you like.
      System.out.println( "IOException " + e );
      e.printStackTrace( );
    }
  }


  /******************************************************************
  *                      Pause, discontinue ....                    *
  ******************************************************************/
  public void  pauseApp( ) { }


  /******************************************************************
  *              Destroy must cleanup everything.                   *
  ******************************************************************/
  public void  destroyApp( boolean unconditional ) { }


  /******************************************************************
  *                  Read url via stream connection.                *
  ******************************************************************/
  void  getViaStreamConnection( String url ) throws IOException {
    StreamConnection  c = null;
    InputStream       s = null;
    StringBuffer      b = new StringBuffer( );
    TextBox           t = null;

    try {
      c = (StreamConnection) Connector.open( url );
      s = c.openInputStream( );
      int  ch;
      while ( (ch = s.read( )) != -1 ) {
        b.append( (char) ch );
      }
      System.out.println( b.toString( ) );
      t = new TextBox( "hello....", b.toString( ), 1024, 0 );
    } finally {
      if ( s != null ) {
        s.close( );
      }
      if ( c != null ) {
        c.close( );
      }
    }
    // Display the contents of the file in a text box.
    display.setCurrent( t );
  }
}