public class MainActivity extends AppCompatActivity { private ByteArrayOutputStream baos; private HttpURLConnection urlConnection; //网络请求的接口 private String path = "http://apis.juhe.cn/cook/query?key=7ec6a52ef771701be99da0f65c624310&menu=%E8%A5%BF%E7%BA%A2%E6%9F%BF&rn=10&pn=3"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); @Override public void onClick(View v) { //创建一个AsyncTask new AsyncTask<String, String, String>() { @Override protected String doInBackground(String... params) { try { //实例化路径 URL url = new URL(params[0]); // HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); //设置请求方式 urlConnection.setRequestMethod("GET"); //设置服务器的超时 时长 urlConnection.setConnectTimeout(5000); //获取响应的状态码 int responseCode = urlConnection.getResponseCode(); //判断等于200代表成功 if (responseCode == 200) { //读取 InputStream is = urlConnection.getInputStream(); baos = new ByteArrayOutputStream(); //以byte数组的形式 byte[] b = new byte[1024 *1024]; int len; while ((len = is.read(b)) != -1) { baos.write(b, 0, len); } return baos.toString(); } else { Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_SHORT).show(); } } catch (Exception e) { e.printStackTrace(); } return baos.toString(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); //Gson解析
Gson g = new Gson(); Eat_food eat_food = g.fromJson(s, Eat_food.class); list = eat_food.getResult().getData(); lv.setAdapter(new myadpter()); Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show(); } }.execute(path);