问题与验证用户名和密码在我的midlet



我已经修改了登录并实现了这个。

 public void login() {         
        HttpConnection c = null;
        InputStream is = null;
        StringBuffer str = new StringBuffer();
        String url = "http://101.00.00.000/...../"
                + "?user=" + getUsername().getString().trim()
                + "&password=" + getPass().getString().trim();
        try {
            c = (HttpConnection) Connector.open(url);
            is = c.openInputStream();
            int len = (int)c.getLength();
            int ch;
            String getS = "";
            while((ch = is.read()) != -1){
                str.append((char)ch);
                getS = str.toString();
                String msg = "Login successful";
                System.out.println(getS.substring(0, getS.length()));
                if (getS.substring(0, 16).equals(msg)){
                System.out.println(getS);
                switchDisplayable(null, svgMenu.getSvgCanvas());
            }else{
                switchDisplayable(null, getAlert2());
//            }
            }
            System.out.println(getS);

        } 
        catch (IOException exception) {
            try {
                if (is != null)
                  is.close();
              if (c != null)
                  c.close();
                exception.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        } 
    }

调试时url的响应给出了登录成功的正确答案,即在命令行中。但是我注意到字符串比较没有返回正确的逻辑即

if (getS.substring(0, 16).equals(msg)){
                    System.out.println(getS);
                    switchDisplayable(null, svgMenu.getSvgCanvas());
                }

if语句永远不会执行。

您在服务器端犯了一个错误。因为您从客户端(移动端)发送用户名和密码的字符串值。您需要在服务器端进行验证。在此之前,您需要检查客户端(移动端)用户名和密码上是否有空白。使用getUsername().getString().trim()getPass().getString().trim(),如果需要检查大小写敏感。

相关内容

  • 没有找到相关文章

最新更新