HttpURLConnection 和GSON解析

来源:互联网 发布:网络继续教育学院 编辑:程序博客网 时间:2024/05/20 16:01

//清单文件中的权限

 <uses-permission android:name="android.permission.INTERNET"></uses-permission>



//主方法

public class MainActivity extends AppCompatActivity {


    private ListView lv1;
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg!=null){
                String str=msg.obj.toString();
                getmessage(str);
            }
        }


        public void getmessage(String str) {
            Gson gson=new Gson();
            food foOd =gson.fromJson(str,food.class);
            ArrayList<food.DataBean> list= (ArrayList<food.DataBean>) foOd.getData();
            for (food.DataBean DataBean:list){
                List<food.DataBean.CatesBean> cates = DataBean.getCates();
                for (food.DataBean.CatesBean CatesBean:  cates){


                    for (int i = 0; i < cates.size(); i++) {
                        cates.get(i).getCatename();
                    }
                }
            }
//            for (int i = 0; i < list.size(); i++) {
//                Log.e("lcy", "getmessage:%%%%%%%%%%%%%%%%%%% "+list.get(i).getTitle());
//                list.get(i).CatesBean
//            }
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();


    }


    private void initView() {
        lv1 = (ListView) findViewById(R.id.lv1);
        new Mythread().start();
    }
    class  Mythread extends Thread {
        @Override
        public void run() {
            //获取数据


            //URL对象
            try {
                URL url = new URL("http://app.vmoiver.com/apiv3/post/getPostInCate?cateid=0&p=1");
                //通过URL打开网络连接
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                //响应码
                if (connection.getResponseCode() == 200) {
                    //获取数据成功
                    InputStream is = connection.getInputStream();
                    //从流中取出数据
                    byte[] buffer = new byte[1024];
                    int len = 0;
                    //水桶
                    StringBuilder stringBuilder = new StringBuilder();
                    while ((len = is.read(buffer)) != -1) {
                        stringBuilder.append(new String(buffer, 0, len));
                    }
                   String result = stringBuilder.toString();
                    Message message=Message.obtain();
                    message.obj=result;
                    handler.sendMessage(message);
                }


            } catch (Exception e) {
                e.printStackTrace();
            }


        }
    }
}