通过Java进行覆盖的Telnet命令

时间:2018-08-31 16:03:02

标签: java apache automation telnet apache-commons-net

我看到有人问过类似的问题,并且我使用了Apache Commons TelnetClient指示的建议。

我的问题是,有一个用户名和密码字段,需要输入一行,但是当我使用代码输入这些详细信息时,它将移动该行,而不是用文本替换该行。

例如: 入境前 用户名:_________

输入后 用户名:username ________

我正在使用的代码如下:

public void telnetTest()
{
     try{          

      telnet.connect("server IP", 8080);

      ptyIn = telnet.getInputStream();
      ptyOut = new PrintStream(telnet.getOutputStream());

      readUntil("Username: ");
      write("user");
      readUntil("Password: ");
      write("password");

      // Advance to a prompt
      readUntil(prompt + " ");

      telnet.disconnect();
     }

     catch(Exception e)
     {

     }

}

public String readUntil(String pattern) {
    try {
        char lastChar = pattern.charAt(pattern.length() - 1);
        StringBuffer sb = new StringBuffer();
        boolean found = false;
        char ch = (char) ptyIn.read();
        while (true) {
            System.out.print(ch);
            sb.append(ch);
            if (ch == lastChar) {
                if (sb.toString().endsWith(pattern)) {
                    return sb.toString();
                }
            }
            ch = (char) ptyIn.read();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

public void write(String value) {
    try {
        ptyOut.flush();
        ptyOut.println(value);            
        ptyOut.flush();
        System.out.println(value);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

任何建议将不胜感激。

0 个答案:

没有答案