readline() returning null

Asked

Viewed 92 times

0

I have a problem with my code. I need to access my website and check the answer it gives me. However readline returns null (End of transmission) right on the first and only line. No error, only returns null (Ví by debug).

    try {

        URL oracle = new URL("http://brunnw.cf/plugins.php?licenca=" + license);
        URLConnection yc = oracle.openConnection();
        yc.setConnectTimeout(5000);
        yc.setReadTimeout(5000);
        BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));

        /*

        O site esta programado para responder apenas true ou false, 
        então eu não me preocupo com outras linhas, só a primeira.
        Por isso está assim, é de proposito

        */
        if(in.readLine() == "true") {

            ccs.sendMessage("§b[uRanking]§f Sua licença é válida! Plugin ativado com sucesso!");
            ccs.sendMessage("§b[uRanking]§f Obrigado por comprar meus plugins e por ser honesto :-)");

        } else {

            ccs.sendMessage("§4[uRanking]§f Sua licença não é válida!");
            ccs.sendMessage("§4[uRanking]§f Verifique o número de licenciamento e tente novamente.");
            ccs.sendMessage("§4[uRanking]§f O plugin será desabilitado por questões de segurança.");
            Bukkit.getPluginManager().disablePlugin(plugin);

        }

    } catch(Exception e) {

             ccs.sendMessage("§4[uRanking]§f Não foi possível verificar sua licença. O plugin foi desativado por medidas preventivas.");
             Bukkit.getPluginManager().disablePlugin(plugin);

    } 
  • Please post the full error message

  • As @Alexandreguerreiro mentioned post the whole error, but a doubt has tried to see even what data the in.readLine() is returning ( through a variable or debug), to make sure it is null?

  • Consider using "true".equals(in.readLine()) instead of in.readLine() == "true"

  • Yes, I did a debug and returns exactly null

  • @Brunno Just to be sure, you’re making a plugin for Minecraft server? kkk

  • @Francisco Sim :)

Show 1 more comment

1 answer

1


You can use an external library, Apache Commons IO, to turn your inputStream directly into a string, since you only need the first line.

    URL url = new URL("http://brunnw.cf/plugins.php?licenca=" + license);
    URLConnection con = url.openConnection();
    InputStream in = con.getInputStream();

    String body = IOUtils.toString(in, "UTF-8");    

    if(body.contains("true")) {
        //...
    }else {
        //...
    }

Browser other questions tagged

You are not signed in. Login or sign up in order to post.