HttpPOSTMIDlet.java Source code

Java tutorial

Introduction

Here is the source code for HttpPOSTMIDlet.java

Source

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;

import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
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;

public class HttpPOSTMIDlet extends MIDlet implements CommandListener {
    private Command exitCommand = new Command("Exit", Command.EXIT, 1);

    private Command sendCommand = new Command("Send", Command.OK, 1);

    private Command backCommand = new Command("Upload", Command.OK, 1);

    private Display display;

    private String defaultURL = "http://localhost/fetchNews.asp";

    private Form mainForm, resultForm;

    private TextField URL = new TextField(null, null, 250, TextField.URL);

    private StringItem resultItem;

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

    public void startApp() {
        mainForm = new Form("Name");
        mainForm.append(URL);
        mainForm.addCommand(sendCommand);
        mainForm.addCommand(exitCommand);
        mainForm.setCommandListener(this);
        display.setCurrent(mainForm);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    public void commandAction(Command c, Displayable s) {
        if (c == sendCommand) {
            String result = "";
            resultItem = new StringItem(null, result);
            resultForm = new Form("Result");
            String URLString = "name=" + URL.getString();

            try {
                result = requestUsingGET(URLString);
            } catch (IOException e) {
                result = "Falied";
            }

            resultItem.setText(result);
            resultForm.append(resultItem);
            resultForm.addCommand(backCommand);
            resultForm.setCommandListener(this);
            display.setCurrent(resultForm);
        } else if (c == backCommand) {
            URL.setString(defaultURL);
            display.setCurrent(mainForm);
        } else {
            destroyApp(false);
            notifyDestroyed();
        }
    }

    private String requestUsingGET(String URLString) throws IOException {
        HttpConnection hpc = null;
        DataInputStream dis = null;
        DataOutputStream dos = null;

        boolean newline = false;
        String content = "";
        try {
            hpc = (HttpConnection) Connector.open(defaultURL);
            hpc.setRequestMethod(HttpConnection.POST);
            hpc.setRequestProperty("User-Agent", "Profile/MIDP-1.0 Configuration/CLDC-1.0");
            hpc.setRequestProperty("Content-Language", "zh-tw");
            hpc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            hpc.setRequestProperty("Content-Length", String.valueOf(URLString.length()));

            dos = new DataOutputStream(hpc.openOutputStream());
            dos.write(URLString.getBytes());
            dos.flush();

            InputStreamReader xdis = new InputStreamReader(hpc.openInputStream());

            int character;
            while ((character = xdis.read()) != -1) {
                if ((char) character == '\\') {
                    newline = true;
                    continue;
                } else {
                    if ((char) character == 'n' && newline) {
                        content += "\n";
                        newline = false;
                    } else if (newline) {
                        content += "\\" + (char) character;
                        newline = false;
                    } else {
                        content += (char) character;
                        newline = false;
                    }
                }

            }
            if (hpc != null)
                hpc.close();
            if (dis != null)
                dis.close();
        } catch (IOException e2) {
        }

        return content;
    }
}