Mega Code Archive

 
Categories / Java by API / Javax Microedition Io
 

HttpConnection HTTP_OK

import java.io.InputStream; import java.io.IOException; import java.io.OutputStream; import javax.microedition.io.Connector; import javax.microedition.io.HttpConnection; import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.StringItem; import javax.microedition.lcdui.TextField; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class HttpMIDlet extends MIDlet implements CommandListener, Runnable {   private Display display;   private Form addressForm = new Form("HTTP Client");   private Form connectForm = new Form("Connecting");   private Form displayForm = new Form("Server Reply");   private TextField serverURL = new TextField("URL:", "", 256, TextField.ANY);   private StringItem messageLabel = new StringItem(null, "Connecting...\nPlease wait.");   private Command okCommand = new Command("OK", Command.OK, 0);   private Command exitCommand = new Command("Exit", Command.EXIT, 0);   private Command backCommand = new Command("Back", Command.BACK, 0);      protected void startApp() throws MIDletStateChangeException {     display = Display.getDisplay(this);     addressForm.append(serverURL);     addressForm.addCommand(okCommand);     addressForm.addCommand(exitCommand);     addressForm.setCommandListener(this);     connectForm.append(messageLabel);     connectForm.addCommand(backCommand);     connectForm.setCommandListener(this);     displayForm.append(messageLabel);     displayForm.addCommand(backCommand);     displayForm.setCommandListener(this);     display.setCurrent(addressForm);   }   protected void pauseApp() {   }   protected void destroyApp(boolean unconditional)       throws MIDletStateChangeException {   }   public void commandAction(Command cmd, Displayable d) {     if (cmd == okCommand) {       Thread t = new Thread(this);       t.start();       display.setCurrent(connectForm);     } else if (cmd == backCommand) {       display.setCurrent(addressForm);     } else if (cmd == exitCommand) {       try {         destroyApp(true);       } catch (MIDletStateChangeException ex) {       }       notifyDestroyed();     }   }   public void run() {     InputStream is = null;     HttpConnection conn = null;     try {       String url = serverURL.getString();       if (!url.startsWith("http://") && !url.startsWith("https://")) {         url = "http://" + url;       }       conn = (HttpConnection) Connector.open(url, Connector.READ_WRITE);       if (conn.getResponseCode() == HttpConnection.HTTP_OK) {         is = conn.openInputStream();         final int MAX_LENGTH = 128;         byte[] buf = new byte[MAX_LENGTH];         int total = 0;         while (total < MAX_LENGTH) {           int count = is.read(buf, total, MAX_LENGTH - total);           if (count < 0) {             break;           }           total += count;         }         is.close();         String reply = new String(buf, 0, total);         messageLabel.setText(reply);       } else {         messageLabel.setText("Failed: error " + conn.getResponseCode() + "\n"+ conn.getResponseMessage());       }       conn.close();       display.setCurrent(displayForm);     } catch (IOException ex) {       System.out.println(ex);       ex.printStackTrace();       Alert alert = new Alert("I/O Error","An error occurred while communicating with the server.", null,AlertType.ERROR);       alert.setTimeout(Alert.FOREVER);       display.setCurrent(alert, addressForm);       return;     }   } }