使用GET获取gson 1.利用AsyncTask 2.输出流

来源:互联网 发布:人工智能 书籍 知乎 编辑:程序博客网 时间:2024/06/07 15:05

class myAsyncTask extends AsyncTask Void, Void, String> {

        private List_Baseadapter list_baseadapter;        private String s;        //            相当于子线程        @Override        protected String doInBackground(Void... params) {            String path = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10";            try {                URL url = new URL(path);                HttpURLConnection connection = (HttpURLConnection) url.openConnection();                connection.setRequestMethod("GET");                connection.setReadTimeout(5000);                connection.setConnectTimeout(5000);                int responseCode = connection.getResponseCode();                Log.d("SSS", "++++++++"+responseCode);                if (responseCode == 200) {                    Log.d("SSS", "++++相应成功++++");                    InputStream inputStream = connection.getInputStream();                    s = streamToString(inputStream, "utf-8");                    Log.d("SSS", "++++++++"+s.toString());                    return s;                }            } catch (Exception e) {                e.printStackTrace();                Log.d("SSS", "++++Exception++++"+e.getMessage());            }            return null;        }        //相当于主线程        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            Gson gson = new Gson();            MyBean myBean = gson.fromJson(s, MyBean.class);            List<MyBean.NewslistBean> list = myBean.getNewslist();            list_baseadapter = new List_Baseadapter(getActivity(),list);            listview.setAdapter(list_baseadapter);        }    }private String streamToString(InputStream inputStream, String s) {    try {        InputStreamReader inputStreamReader = new InputStreamReader(inputStream, s);        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);        String a = "";        StringBuilder stringBuilder = new StringBuilder();        while ((a = bufferedReader.readLine()) != null) {            stringBuilder.append(a);        }        bufferedReader.close();        return stringBuilder.toString();    } catch (Exception e) {        e.printStackTrace();    }    return "";}