(J2ME)登录页面用于验证用户名和密码并显示检索到的数据

时间:2015-11-19 11:02:51

标签: java-me

有人可以帮助我,我在J2ME编码方面比较新....我有一个包含用户名和密码的API链接(例如http://sunday-tech.com/chunghua/api/login.php?username=yasir&password=yasir

我正在尝试验证用户输入并访问API并读取数据。我正在使用httpconnection,但我不确定它是否适合使用。

到目前为止,代码通过读取每个字符来访问和显示内容,但如何排除逗号和括号以及在电话中以有组织的方式显示数据。此外,当用户名和密码输入错误时,它应该提醒Invalid Login ......

如果有人可以通过提供一些代码片段来启发这一点,我将非常感激。这是我到目前为止所做的。

public class Login extends MIDlet实现了CommandListener {

TextField UserName = null;
TextField Password = null;
Form authForm, mainscreen;
TextBox t = null;
StringBuffer b = new StringBuffer();
private Display myDisplay = null;
private Command okCommand = new Command("OK", Command.OK, 1);
private Command exitCommand = new Command("Exit", Command.EXIT, 2);
private Command backCommand = new Command("Back", Command.BACK, 2);
private Alert alert = null;

public Login() {

    myDisplay = Display.getDisplay(this);

    UserName = new TextField("Username", "", 10, TextField.ANY);
    Password = new TextField("Password", "", 10, TextField.ANY);
    authForm = new Form("Identification");
    mainscreen = new Form("Logging IN");
    mainscreen.append("Logging in....");
    mainscreen.addCommand(backCommand);
    authForm.append(UserName);
    authForm.append(Password);
    authForm.addCommand(okCommand);
    authForm.addCommand(exitCommand);
    authForm.setCommandListener(this);
    myDisplay.setCurrent(authForm);

}

public void startApp() throws MIDletStateChangeException {
}

public void pauseApp() {
}

protected void destroyApp(boolean unconditional)
        throws MIDletStateChangeException {
}

public void commandAction(Command c, Displayable d) {

 if ((c == okCommand) && (d == authForm)) {
 if (UserName.getString().equals("") || Password.getString().equals("")) {
 alert = new Alert("Error", "You should enter Username and Password", null, AlertType.ERROR);
   alert.setTimeout(Alert.FOREVER);
   myDisplay.setCurrent(alert);
        } 

   else {
            //myDisplay.setCurrent(mainscreen);
            login(UserName.getString(), Password.getString());
        }
    }
    if ((c == backCommand) && (d == mainscreen)) {
        myDisplay.setCurrent(authForm);
    }
    if ((c == exitCommand) && (d == authForm)) {
        notifyDestroyed();
    }
}

public void login(String UserName, String PassWord) {
    HttpConnection connection = null;
    DataInputStream in = null;
    String base = "http://sunday-tech.com/chunghua/api/login.php";
    String url = base + "?username=" + UserName + "&password=" + PassWord;

    OutputStream out = null;
    try {
        connection = (HttpConnection) Connector.open(url);
        connection.setRequestMethod(HttpConnection.POST);
        connection.setRequestProperty("IF-Modified-Since", "2 Oct 2002                                     15:10:15 GMT");
        connection.setRequestProperty("User-Agent", "Profile/MIDP-2.1 Configuration/CLDC-1.0");
        connection.setRequestProperty("Content-Language", "en-CA");
        connection.setRequestProperty("Content-Length", "" + (UserName.length() + PassWord.length()));
        connection.setRequestProperty("UserName", UserName);
        connection.setRequestProperty("PassWord", PassWord);
        out = connection.openDataOutputStream();
        out.flush();
        in = connection.openDataInputStream();
        int ch;
        while ((ch = in.read()) != -1) {
            b.append((char) ch);
            //System.out.println((char)ch);
        }
        //t = new TextBox("Reply",b.toString(),1024,0);
        mainscreen.append(b.toString());
        if (in != null) {
            in.close();
        }
        if (out != null) {
            out.close();
        }
        if (connection != null) {
            connection.close();
        }
    } catch (IOException x) {
    }
    myDisplay.setCurrent(mainscreen);

}
}

0 个答案:

没有答案