public void getDataByClient(View view){
//第一个是参数的意思,,,一般是url地址,,Void,,,第二个是异步任务执行的进度,,Void,,第三个是结果泛型,,,String
AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
//运行在后台...类似子线程,,,做耗时的操作(访问网络的操作)
@Override
protected String doInBackground(Void... voids) {
try {
/**
* httpClient已经过时了,在使用的时候需要在build,grandle下面加一行代码,去支持httpClient
*/
SSLSocketFactory.getSocketFactory().setHostnameVerifier(new AllowAllHostnameVerifier());
String path = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10";
//1.创建一个客户端对象
HttpClient client = new DefaultHttpClient();
//2.创建一个请求的对象...请求的对象可以是get也可以是post
HttpGet httpGet = new HttpGet(path);
//3.客户端对象执行get请求....返回值是一个响应的对象
HttpResponse httpResponse = client.execute(httpGet);
//获取状态码
int statusCode = httpResponse.getStatusLine().getStatusCode();
if (statusCode == 200) {
//获取响应的实体内容...字节流...先获取实体内容的对象...在获取内容
InputStream inputStream = httpResponse.getEntity().getContent();
String json = streamToString(inputStream, "utf-8");
//返回
return json;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//接收到doInBackground发送回来的数据....处于主线程,,,更新界面的操作写在这里
@Override
protected void onPostExecute(String s) {//s就是doInBackground返回的json数据
//在这里接收到doInBackground返回的json数据,,,解析设置适配器
Gson gson = new Gson();
DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);
final List<DataDataBean.NewslistBean> newslist = dataDataBean.getNewslist();
//设置适配器
MyAdapter myAdapter = new MyAdapter(newslist, MainActivity.this);
listView.setAdapter(myAdapter);
}
};
/**
* 异步任务要执行,,,需要手动的去调用excute方法
*/
asyncTask.execute();
//第一个是参数的意思,,,一般是url地址,,Void,,,第二个是异步任务执行的进度,,Void,,第三个是结果泛型,,,String
AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
//运行在后台...类似子线程,,,做耗时的操作(访问网络的操作)
@Override
protected String doInBackground(Void... voids) {
try {
/**
* httpClient已经过时了,在使用的时候需要在build,grandle下面加一行代码,去支持httpClient
*/
SSLSocketFactory.getSocketFactory().setHostnameVerifier(new AllowAllHostnameVerifier());
String path = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10";
//1.创建一个客户端对象
HttpClient client = new DefaultHttpClient();
//2.创建一个请求的对象...请求的对象可以是get也可以是post
HttpGet httpGet = new HttpGet(path);
//3.客户端对象执行get请求....返回值是一个响应的对象
HttpResponse httpResponse = client.execute(httpGet);
//获取状态码
int statusCode = httpResponse.getStatusLine().getStatusCode();
if (statusCode == 200) {
//获取响应的实体内容...字节流...先获取实体内容的对象...在获取内容
InputStream inputStream = httpResponse.getEntity().getContent();
String json = streamToString(inputStream, "utf-8");
//返回
return json;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//接收到doInBackground发送回来的数据....处于主线程,,,更新界面的操作写在这里
@Override
protected void onPostExecute(String s) {//s就是doInBackground返回的json数据
//在这里接收到doInBackground返回的json数据,,,解析设置适配器
Gson gson = new Gson();
DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);
final List<DataDataBean.NewslistBean> newslist = dataDataBean.getNewslist();
//设置适配器
MyAdapter myAdapter = new MyAdapter(newslist, MainActivity.this);
listView.setAdapter(myAdapter);
}
};
/**
* 异步任务要执行,,,需要手动的去调用excute方法
*/
asyncTask.execute();
}