封装网络获取数据
2018-03-29 19:43
295 查看
一、自定义MyTaskpublic class MyTask extends AsyncTask<String,Void,String> {
private IcallBack icallBack;
public MyTask(IcallBack icallBack) {
this.icallBack = icallBack;
}
@Override
protected String doInBackground(String... strings) {
String str="";
try {
URL url = new URL(strings[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(5000);
int responseCode = urlConnection.getResponseCode();
if (responseCode==200){
InputStream inputStream = urlConnection.getInputStream();
str=toJson(inputStream);
}
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
icallBack.getJsonData(s);
}
public interface IcallBack{
void getJsonData(String s);
}
private String toJson(InputStream inputStream) {
StringBuilder builder = new StringBuilder();
String string;
InputStreamReader in = new InputStreamReader(inputStream);
BufferedReader reader = new BufferedReader(in);
try {
while ((string=reader.readLine())!=null){
builder.append(string);
}
} catch (Exception e) {
e.printStackTrace();
}
return builder.toString();
}
}
二、调用MyTask myTask = new MyTask(new MyTask.IcallBack() {
@Override
public void getJsonData(String s) {
Gson gson = new Gson();
RequestData requestData = gson.fromJson(s, RequestData.class);
List<RequestData.DataBean> list = requestData.getData();
if (pagetype==1){
MainActivity.this.data.clear();
}
MainActivity.this.data.addAll(list);
setgvadapter();
plv.onRefreshComplete();
}
});
myTask.execute(urlpath);
private IcallBack icallBack;
public MyTask(IcallBack icallBack) {
this.icallBack = icallBack;
}
@Override
protected String doInBackground(String... strings) {
String str="";
try {
URL url = new URL(strings[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(5000);
int responseCode = urlConnection.getResponseCode();
if (responseCode==200){
InputStream inputStream = urlConnection.getInputStream();
str=toJson(inputStream);
}
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
icallBack.getJsonData(s);
}
public interface IcallBack{
void getJsonData(String s);
}
private String toJson(InputStream inputStream) {
StringBuilder builder = new StringBuilder();
String string;
InputStreamReader in = new InputStreamReader(inputStream);
BufferedReader reader = new BufferedReader(in);
try {
while ((string=reader.readLine())!=null){
builder.append(string);
}
} catch (Exception e) {
e.printStackTrace();
}
return builder.toString();
}
}
二、调用MyTask myTask = new MyTask(new MyTask.IcallBack() {
@Override
public void getJsonData(String s) {
Gson gson = new Gson();
RequestData requestData = gson.fromJson(s, RequestData.class);
List<RequestData.DataBean> list = requestData.getData();
if (pagetype==1){
MainActivity.this.data.clear();
}
MainActivity.this.data.addAll(list);
setgvadapter();
plv.onRefreshComplete();
}
});
myTask.execute(urlpath);
相关文章推荐
- 网络连接的判断与封装以及网络获取数据的封装
- 网络连接的判断的封装与 网络获取数据 的封装
- 一个从网络获取数据的封装类,以及接口回调
- 获取网络数据的封装
- 获取网络判断和数据进行封装
- 网络数据获取的封装
- 通用JS工具类封装——网络数据请求功能、获取服务端接口 url、参数功能
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- 在vb中使用Iphlpapi.dll获取网络信息 第四章 第三节 实例一:网络数据流量图
- Android网络开发之实时获取最新数据
- 简单的获取网络数据 测试使用
- 网络数据获取 调试
- iPhone-获取网络数据或者路径的文件名以及后缀
- 获取网络Json格式数据-使用原生态解析Json
- 微信小程序教学第二章(含视频):小程序中级实战教程之预备篇 - 封装网络请求及 mock 数据
- 第十二篇:Android GET请求获取网络数据以及POST数据(使用HttpURLConnection)
- (转)Android通过URL获取网络数据
- 微信小程序教学第二章(含视频):小程序中级实战教程之预备篇 - 封装网络请求及 mock 数据
- Android利用Get、Post 获取网络数据
- C编程获取指定网卡网络数据包并分析(附C语言源码)