【问题标题】:bufferReader or InputStreamReader always throws exceptionbufferedReader 或 InputStreamReader 总是抛出异常
【发布时间】:2011-06-11 09:31:55
【问题描述】:

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

我尝试了两种不同的方法,发现任何一种方法都是引发 IOException 的同一行。它是创建新 bufferReader 的行。不知道是bufferReader还是InputStreamReader。此外,除了打印 IOException 之外,我真的不知道如何从异常中获取更多信息。这是重要的代码。谢谢。

尝试 { //方法一 URL page = new URL("http://192.168.1.108/score.php"); URLConnection pageconnection = page.openConnection(); BufferedReader in = new BufferedReader( 新的 InputStreamReader( pageconnection.getInputStream())); //方法二 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 连接.connect(); BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 而 ((inputLine = rd.readLine()) != null) System.out.println(inputLine); 附寄(); rd.close(); HscoreText.setText("成功了!"); } 捕获(错误的 URL 异常 e) { HscoreText.setText("MalformedURL"); } 捕获(IOException e) { HscoreText.setText("IOException"); }

【问题讨论】:

  • 请发布您的异常的完整堆栈跟踪。使用 Log.d("message", e);
  • 调用 e.toString() 将异常转换为字符串...如果运气好的话,这将提供更多信息。

标签: java android web-services


【解决方案1】:

而不是这样做,

HscoreText.setText("IOException");

你可以这样做。

HscoreText.setText(e.getMessage());

查看异常消息。您是说您的代码在 Android 之外运行吗?

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

【讨论】:

  • 谢谢。我现在有更多信息。我的错误消息显示“java.net.SocketException:权限被拒绝(可能缺少 INTERNET 权限)”。任何线索这可能意味着什么?
  • 我将 添加到我的清单中并且它起作用了。谢谢
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    或者无耻的插件你可以使用Resty而不用理会URLConnection之类的东西。

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

    它会尊重内容编码,否则会不碍事。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 试试看,为什么? setDoInput(true)是默认的,浪费时间,setDoOutput(true)设置请求方法为POST,问题中没有提到,也不需要发布任何参数,所以浪费时间好吧。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多