public class MainActivity extends AppCompatActivity { private TextView text_title; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲取控件 text_title = (TextView) findViewById(R.id.text_title); Mytask mytask = new Mytask(); mytask.execute(); } class Mytask extends AsyncTask<Void,Void,String>{ @Override protected String doInBackground(Void... voids) { try { //創建httpclient對象 DefaultHttpClient client = new DefaultHttpClient(); //路徑 String path = "http://apis.juhe.cn/cook/query?key=?&menu=%E8%A5%BF%E7%BA%A2%E6%9F%BF&rn=10&pn=3"; //創建請求方式 HttpGet httpGet = new HttpGet(path); //用對象執行 HttpResponse execute = client.execute(httpGet); //獲取狀態碼,要先獲取狀態行 int statusCode = execute.getStatusLine().getStatusCode(); if (statusCode == 200) { //獲取實體內容 InputStream content = execute.getEntity().getContent(); //把實體內容轉爲字符串 InputStreamReader inputStreamReader = new InputStreamReader(content); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); //創建字符串緩衝區 StringBuilder builder = new StringBuilder(); //創建變量,用來存儲讀取的內容 String string = null; //循環讀取內容 while ((string = bufferedReader.readLine()) != null) { builder.append(string); } bufferedReader.close(); return builder.toString(); } } catch (Exception e) { e.printStackTrace(); } return null; } //此方法接收doinbackground方法的返回值 @Override protected void onPostExecute(String s) { text_title.setText(s); } } }
Android中異步任務請求網絡數據
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.