Categories: Java | Java ME | Code Examples | Networking | HTTP
This page was last modified 00:04, 20 May 2008.
Fetching data from server
From Forum Nokia Wiki
The basic purpose of this article is to download and view a file.
Important Points
- One benefit of using an HttpConnection (as compared to InputStream or StreamConnection) is the availability of a method to check for the length of the remote data. The data can then be read in one fell-swoop, in contrast to reading one character/byte at a time.
- Before leaving the viewFile() method, check to the status of the input stream and the httpConnection, and close if necessary.
Sample code for client side.
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.io.*; import java.io.*; public class FileViewer extends MIDlet implements CommandListener { private Display display; // Reference to Display object private TextBox tbViewer; // View file contents in a textbox private Command cmView; // Command to view file private Command cmExit; // Command to exit private String url = "http://www.corej2me.com/midpbook_v1e1/scratch/fileViewer.hlp"; public FileViewer() { display = Display.getDisplay(this); // Define commands cmView = new Command("View", Command.SCREEN, 2); cmExit = new Command("Exit", Command.EXIT, 1); tbViewer = new TextBox("Viewer", "", 250, TextField.ANY); tbViewer.addCommand(cmView); tbViewer.addCommand(cmExit); tbViewer.setCommandListener(this); } public void startApp() { display.setCurrent(tbViewer); } private void viewFile() throws IOException { HttpConnection http = null; InputStream iStrm = null; try { http = (HttpConnection) Connector.open(url); //---------------- // Client Request //---------------- // 1) Send request method http.setRequestMethod(HttpConnection.GET); // 2) Send header information (this header is optional) http.setRequestProperty("User-Agent", "Profile/MIDP-1.0 Configuration/CLDC-1.0"); // 3) Send body/data - No data for this request //---------------- // Server Response //---------------- // 1) Get status Line System.out.println("Msg: " + http.getResponseMessage()); System.out.println("Code: " + http.getResponseCode()); // 2) Get header information if (http.getResponseCode() == HttpConnection.HTTP_OK) { // 3) Get data (show the file contents) iStrm = http.openInputStream(); int length = (int) http.getLength(); if (length > 0) { byte serverData[] = new byte[length]; iStrm.read(serverData); tbViewer.setString(new String(serverData)); } } } finally { if (iStrm != null) iStrm.close(); if (http != null) http.close(); } } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { if (c == cmView) { try { viewFile(); } catch (Exception e) { System.out.println(e.toString()); } } else if (c == cmExit) { destroyApp(false); notifyDestroyed(); } } }
-Kartik Trivedi
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Creating image from downloaded file | roelb | Mobile Java Networking & Messaging & Security | 7 | 2004-03-15 14:37 |
| listener in MIDlet | ahfeii | Mobile Java Networking & Messaging & Security | 2 | 2007-11-20 01:54 |
| Bluetooth Service Registration | kates | Bluetooth Technology | 5 | 2005-01-23 13:02 |
| encypting data to be sent using HTTP (MIDP 1.0) | dihex | Mobile Java Networking & Messaging & Security | 7 | 2005-10-27 20:16 |
| Imlets & configuration data | mattik | Nokia M2M | 2 | 2005-03-03 20:31 |
