首页 文章

bufferReader或InputStreamReader始终抛出异常

提问于
浏览
0

我创建了一个java程序,它只会读取一个网页代码...谷歌的例子,它工作正常 . 但是我试图在模拟器和实际设备-Droid X上的Android应用程序中实现相同的代码 .

我已经尝试了两种不同的方法,并且发现它是同一行抛出IOException . 它是创建新bufferReader的行 . 我不知道它是bufferReader还是InputStreamReader . 此外,除了打印IOException之外,我真的不知道如何从异常中获取更多信息 . 这是重要的代码被剥离 . 谢谢 .

try
        {
//method 1
         URL page = new URL("http://192.168.1.108/score.php");
         URLConnection pageconnection = page.openConnection();
         BufferedReader in = new BufferedReader(
                    new InputStreamReader(
                    pageconnection.getInputStream()));

//method 2
         HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.connect();
            BufferedReader rd  = new BufferedReader(new InputStreamReader(conn.getInputStream()));

while ((inputLine = rd.readLine()) != null) 
            System.out.println(inputLine);

          in.close();
          rd.close();
            HscoreText.setText("It Worked!");
        }
        catch(MalformedURLException e)
        {
         HscoreText.setText("MalformedURL");
        }
        catch (IOException e)
        {
         HscoreText.setText("IOException");
        }

4 回答

  • 0

    或者无耻的插件你可以使用Resty并且不要打扰URLConnection和东西 .

    Resty r = new Resty();
    String text = r.text("http://192.168.1.108/score.php").toString();
    

    它将尊重内容编码,否则就会让您失望 .

  • 0

    而不是这样做,

    HscoreText.setText("IOException");
    

    你可以这样做 .

    HscoreText.setText(e.getMessage());
    

    看到异常消息 . 您是说您的代码在Android之外运行?

    尝试重新启动Eclipse和模拟器 . 尝试使用其他网址 .

  • 0

    在conn.connect()之后尝试这个 - setDoInput(true)和setDoOutput(true) .

  • -1

    值得注意的是,您的代码(两个版本)都假定返回的HTML具有与平台默认编码相同的字符编码 . 即使服务器在同一台计算机上运行,这可能也不是这样 .

相关问题