编写client的工具类:
public static String getJsonByHttpClientGet(String jsonUrl) { String result = ""; //获取httpclient对象 DefaultHttpClient defaultHttpClient = new DefaultHttpClient(); //准备一个get请求 HttpGet httpGet = new HttpGet(jsonUrl); try { //得到服务器返回的数据; HttpResponse response = defaultHttpClient.execute(httpGet); //得到状态码 int statusCode = response.getStatusLine().getStatusCode(); Log.e("TAG",statusCode+""); if(statusCode ==200){ //entiry 里面封装的数据; HttpEntity entity = response.getEntity(); //这个result就是json字符串,剩下的就是解析工作了; result = EntityUtils.toString(entity); } } catch (IOException e) { e.printStackTrace(); Log.e("TAG",e.toString() +""); } return result; }
再进入MainActivity使用AsyncTask异步进行调用:(bena类忽略没写)
class MyAsyncTaskCilent extends AsyncTask<String, Void, String> { public MyAsyncTaskCilent() { super(); } @Override protected String doInBackground(String... strings) { String string = strings[0]; String jsonByHttpClientGet = NetDataUtils.getJsonByHttpClientGet(string); Log.i("TAG","SADS"+jsonByHttpClientGet); return jsonByHttpClientGet; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Log.i("TAG", "onPostExecute: "+s); Gson gson = new Gson(); News news = gson.fromJson(s, News.class); list = news.getNewslist(); lv.setAdapter(new MyAdapter()); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } }