我创建了一个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 回答
或者无耻的插件你可以使用Resty并且不要打扰URLConnection和东西 .
它将尊重内容编码,否则就会让您失望 .
而不是这样做,
你可以这样做 .
看到异常消息 . 您是说您的代码在Android之外运行?
尝试重新启动Eclipse和模拟器 . 尝试使用其他网址 .
在conn.connect()之后尝试这个 - setDoInput(true)和setDoOutput(true) .
值得注意的是,您的代码(两个版本)都假定返回的HTML具有与平台默认编码相同的字符编码 . 即使服务器在同一台计算机上运行,这可能也不是这样 .