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;
}
}
|