public class MainActivity extends AppCompatActivity { private ListView listview; private String url = "http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=tt"; private ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //全局组件 listview = findViewById(R.id.listview); //执行getdata方法 getdata(url); } public void getdata(final String url) { new Thread() { @Override public void run() { try { // 实例化接口 URL urll = new URL(url); //打开连接 HttpURLConnection connection = (HttpURLConnection) urll.openConnection(); //设置get請求方法 connection.setRequestMethod("GET"); //设置连接耗时 connection.setConnectTimeout(5 * 1000); //设置读取耗时 connection.setReadTimeout(5 * 1000); //设置提交请求 connection.connect(); //实例化Message Message message = new Message(); //获取请求码 int code = connection.getResponseCode(); //设置请求码判断 if (code == HttpURLConnection.HTTP_OK) { //请求码为200为成功 message.what = 200; //文件转坏流 InputStream stream = connection.getInputStream(); //实例化转字符方法 String data = cover(stream); // message.obj = data; //请求的接口数据发送到主线程 Handler.sendMessage(message); } else { //请求码为300为失败 message.what = 300; //发送 Handler.sendMessage(message); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }.start(); } private String cover(InputStream stream) throws IOException { //输出流 ByteArrayOutputStream baout = new ByteArrayOutputStream(); //定义为第一行 int len = 1; //实例化byte byte[] bytes = new byte[512]; //判断非空 while ((len = stream.read(bytes)) != -1) { //写数据 baout.write(bytes, 0, len); } //返回字符数组 return new String(baout.toByteArray()); } //主线程Handler private Handler Handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 200: //转换字符并且去除空格 String s = String.valueOf(msg.obj).trim().toString(); Toast.makeText(MainActivity.this, "" + s, Toast.LENGTH_SHORT).show(); //Gson解析 Gson gson = new Gson(); FoucBean foucBean = gson.fromJson(s, FoucBean.class); final List<FoucBean.ResultBean.DataBean> list = foucBean.getResult().getData(); //设置适配器 listview.setAdapter(new BaseAdapter() { @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder holder = new ViewHolder(); if (view == null) { view = View.inflate(MainActivity.this, R.layout.title, null); holder.tv1 = view.findViewById(R.id.textView1); holder.tv2 = view.findViewById(R.id.textView2); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } holder.tv1.setText(list.get(i).getAuthor_name()); holder.tv2.setText(list.get(i).getDate()); // ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),holder.imageView); return view; } }); } } }; class ViewHolder { TextView tv1, tv2; ImageView imageView; } }
HttpURLConnection的GET请求接口数据,并解析Json文件显示到Listview
猜你喜欢
转载自blog.csdn.net/qq_43578439/article/details/84754681
今日推荐
周排行