package com.example.fishionnews.newutils; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import org.json.JSONArray; import org.json.JSONObject; import android.content.Context; import android.util.Log; import com.example.fishionnews.R; import com.example.fishionnews.Beans.NewsBean; /** * 通过HttpURLconntion 对象来访问服务端,由此来获得listview 要显示的数据 * */ public class listutils { // 3.封装一些假数据 public static String newspath_url = "http://192.168.17.1:8080/itheima74/servlet/GetNewsServlet"; public static ArrayList<NewsBean> getnewsForNetWork(Context context) throws Exception { // TODO Auto-generated method stub ArrayList<NewsBean> arraylist = new ArrayList<NewsBean>(); // 1.网络请求数据 try { Log.e("news","------执行1-------"); URL url = new URL("newspath_url"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //设置连接的方式和超时时间 connection.setRequestMethod("GET"); connection.setConnectTimeout(10*1000); //获取请求响应码 int code = connection.getResponseCode(); Log.e("news", code+""); if(code == 200){ Log.e("news", "aaa"); //获取请求到的流信息 InputStream inputStream = connection.getInputStream(); String result = StreamUtil.Streamtostring(inputStream); if(result==null){ Log.e("news", "null"); }else{ Log.e("news", result); } //2.解析获取的新闻数据到List集合中。 JSONObject root_json = new JSONObject(result);//将一个字符串封装成一个json对象。 JSONArray jsonArray = root_json.getJSONArray("newss");//获取root_json中的newss作为jsonArray对象 for (int i = 0 ;i < jsonArray.length();i++){//循环遍历jsonArray JSONObject news_json = jsonArray.getJSONObject(i);//获取一条新闻的json NewsBean newsBean = new NewsBean(); newsBean.id = news_json.getInt("id"); newsBean.comment = news_json.getInt("comment");//评论数 newsBean.type = news_json.getInt("type");//新闻的类型,0 :头条 1 :娱乐 2.体育 newsBean.time = news_json.getString("time"); newsBean.des = news_json.getString("des"); newsBean.title = news_json.getString("title"); newsBean.news_url = news_json.getString("news_url"); newsBean.icon_url = news_json.getString("icon_url"); arraylist.add(newsBean); } // 3.将数据缓存到数据库中 } } catch (Exception e) { e.printStackTrace(); } return arraylist; } }
没报错信息,没输出信息,你想说什么?
我打印了log信息在创建URL对象后就不能打印出信息了,也就是说网络请求的代码没有执行为什么没有执行啊
在判断语句判断请求码中是否为200 为200就打印结果 不为就打印null 可是两个结果没有一个打印出来我不知道为什么不执行下面的代码
@751638623:
1.确认是否能够执行到 return arraylist;
2.确认是否 e.printStackTrace(); 有内容输出
@TCG2008: 只执行到URL url = new URL(url_path);
@751638623:
不可能没有输出日志的,你好好看一下verbose级别的logcat日志,假如你的代码是这么写的 URL url = new URL("newspath_url"); 本身就有 java.net.MalformedURLException 了,printStackTrace肯定是能打印出来的, 如果真的什么东西都没有,那只能祈求奇迹了。
看看有没有异常信息, 或者返回的不是200
可以打个断点调试看下,