Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从web加载数据导致错误_Java_Android - Fatal编程技术网

Java 从web加载数据导致错误

Java 从web加载数据导致错误,java,android,Java,Android,在我的应用程序中,我启动了一个mclick。。单击列表视图项时的listner。在这种情况下,我使用以下代码从网页加载数据:- try { HttpClient httpClient = new DefaultHttpClient(); HttpContext localContext = new BasicHttpContext(); HttpGet httpGet = new HttpGet("http://www.spartanjava.co

在我的应用程序中,我启动了一个mclick。。单击列表视图项时的listner。在这种情况下,我使用以下代码从网页加载数据:-

try {
        HttpClient httpClient = new DefaultHttpClient();
        HttpContext localContext = new BasicHttpContext();
        HttpGet httpGet = new HttpGet("http://www.spartanjava.com");
        HttpResponse response = httpClient.execute(httpGet, localContext);
        String result = "";
        BufferedReader reader = new BufferedReader(
            new InputStreamReader(
              response.getEntity().getContent()
            )
          );
        String line = null;
        while ((line = reader.readLine()) != null){
          result += line + "\n";
        }
} catch (Exception e) {
    tv.setText("Error : "+e.getMessage());//tv is a textview
    Toast.makeText(getApplicationContext(), "No connection", Toast.LENGTH_LONG).show();
    e.printStackTrace();
}
我已在类路径中包括以下JAR:-

commons-codec-1.6.jar
commons-logging-1.1.3.jar
httpclient-4.3.3.jar
httpclient-cache-4.3.3.jar
httpcore-4.3.2.jar
httpmime-4.3.3.jar
我在AnroidManifext.xml文件中拥有该权限。我收到的输出是catch块中的所有输出。textview被设置为值Error:null,toast被触发。知道我该如何继续吗?

也许response.getEntity返回null

当您试图通过getContent获取实体上的InputStream时,如果不检查实体是否为null,它可能会触发NullPointerException

编辑


NetworkOnMainThreadException被抛出时,您必须在线程中执行网络操作,如本例所示:

您的异常实际上准确地告诉您做错了什么。您没有使用其他线程执行网络操作

连接到url的代码应该在非UI线程的AsyncTasks doInBackground方法内执行


有关更多信息,请参见

能否与我们共享完整堆栈跟踪?请尝试打印异常消息,而不仅仅打印为tv.setTextError:+e@Girubai,等等,我正在尝试我得到了这个错误->错误:android.os。NetworkOnMainThreadException@devaldcool同时,您正在尝试在主thred中进行网络调用,所以请在后台进行。看到此图吗