public class MainActivity extends AppCompatActivity { private ListView listview; private String myurl="http://api.tianapi.com/huabian/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=10"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview = findViewById(R.id.listv); MyTask myTask=new MyTask(); myTask.execute(myurl); } class MyTask extends AsyncTask<String,Integer,String>{ @Override protected String doInBackground(String... strings) { try { URL url=new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setReadTimeout(5000); urlConnection.setConnectTimeout(5000); int responseCode = urlConnection.getResponseCode(); if (responseCode==200){ InputStream inputStream = urlConnection.getInputStream(); String ss = ToString(inputStream); return ss; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { Gson gson=new Gson(); Database database = gson.fromJson(s, Database.class); List<Database.NewslistBean> list = database.getNewslist(); MyAdapter adapter=new MyAdapter(list,MainActivity.this); listview.setAdapter(adapter); } @Override protected void onPreExecute() { Toast.makeText(MainActivity.this,"正在进行网络请求 请稍等",Toast.LENGTH_SHORT).show(); } } private String ToString(InputStream inputStream) { StringBuilder builder=new StringBuilder(); String str; BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream)); try { while ((str=reader.readLine())!=null){ builder.append(str); } } catch (Exception e) { e.printStackTrace(); } return builder.toString(); } }
AsyncTask异步请求
最新推荐文章于 2019-03-03 19:39:58 发布