0

我开发了 android 应用程序并在三星选项卡 2 中进行了测试。代码从托管在服务器中的 java 服务器页面获取数据。它在前一天工作,但现在它显示网络超时异常urlConnection.getInputStream()。我不会更改我的代码中的任何内容。请帮助我克服错误。

try {

     String tally_ipaddr="XXXXXXX";
     URL url = new URL(tally_ipaddr+"/Iplogin.jsp");
     urlConnection = (HttpURLConnection) url.openConnection();
     String line = "";       
     InputStreamReader isr = new InputStreamReader(urlConnection.getInputStream());
     BufferedReader reader = new BufferedReader(isr);
     StringBuilder sb = new StringBuilder();
     while ((line = reader.readLine()) != null){
       sb.append(line);
     }
 Toast.makeText(MyActivity.this, sb.toString(), Toast.LENGTH_LONG).show();
}
catch (Exception e)  {
   e.printStackTrace();
   Toast.makeText(MyActivity.this, e.toString(), Toast.LENGTH_LONG).show();
}
4

2 回答 2

0
class UrlFetch extends AsyncTask<Void,Void,Void>
{

    @Override
    protected Void doInBackground(Void... params) {
        // TODO Auto-generated method stub


        try {

            String tally_ipaddr="XXXXXXX";

            URL url = new URL(tally_ipaddr+"/Iplogin.jsp");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setConnectTimeout(5000);    // 5 seconds
            conn.setRequestMethod("GET");       
            conn.connect();
            BufferedReader rd  = new BufferedReader(new InputStreamReader(conn.getInputStream()));

            String line;
            while ((line = rd.readLine()) != null) {
                System.out.println(line);
            }

            conn.disconnect(); 
        }
        catch (Exception e)  {

            e.printStackTrace();
        }


        return null;
    }

}

并调用如下所示的 asynctask

new UrlFetch().execute();

希望上面的代码对你有用

于 2013-06-10T09:09:31.240 回答
0

我注意到地址以“Iplogin.jsp”结尾。

确保服务器正在接受来自您设备 IP 地址的连接。我认为您设备的 IP 地址已更改,服务器不再响应来自该设备的请求。

您可以从桌面浏览器访问该服务,但不能从设备浏览器访问该服务,这一事实令人高度怀疑。

于 2013-06-10T09:51:49.343 回答