GET与As

原创 2018年04月16日 09:28:57
package zhanghaijiao.bawei.com.jsonarraydemo;


import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;


import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Type;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;


public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        MyTask myTask=new MyTask();
        myTask.execute("http://api.iclient.ifeng.com/ClientNews?id=JS83,FOCUSJS83&action=defalult");








    }
    class MyTask extends AsyncTask<String,Void,String>{
        @Override
        protected String doInBackground(String... strings) {
            try {
                URL url=new URL(strings[0]);
                HttpURLConnection urlConnection =(HttpURLConnection) url.openConnection();
                urlConnection.setRequestMethod("GET");
                urlConnection.setConnectTimeout(5000);
                urlConnection.setReadTimeout(5000);


                if(urlConnection.getResponseCode()==200) {
                    InputStream inputStream = urlConnection.getInputStream();


                    String ss = streamToString(inputStream);
                    return ss;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }


        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);


            List<ResultData>  datas=new ArrayList<>();


            //得到集合的type类型
            Type tt=new TypeToken<List<ResultData>>(){}.getType();


            Gson gson=new Gson();
            datas=gson.fromJson(s,tt);


            //页面上列表显示的数据是
            List<ResultData.ItemBean> item = datas.get(0).getItem();


            //适配器




            for (int i = 0; i <datas.size() ; i++) {
                Toast.makeText(MainActivity.this, datas.get(i).getListId(), Toast.LENGTH_LONG).show();
            }


        }
    }


        /**
         * 将流转换成String
         * @param stream
         */
        private String streamToString(InputStream stream) {
            StringBuilder sbuilder=new StringBuilder();
            String str;
            BufferedReader reader=new BufferedReader(new InputStreamReader(stream));


            try {
                while ((str=reader.readLine())!=null){
                    sbuilder.append(str);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return  sbuilder.toString();


        }
}
收藏助手
不良信息举报
您举报文章:GET与As
举报原因:
原因补充:

(最多只允许输入30个字)