Connection请求数据工具类
来源:互联网 发布:软件测试 西安 编辑:程序博客网 时间:2024/06/16 19:50
创建一个Util包
创建以下两个 工具类
1、
package com.example.gridview.Utils;import android.os.AsyncTask;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;/** * 使用AsyncTask+HttpURLConnection请求数据 * Created by e531 on 2017/10/12. */public class MyTask extends AsyncTask<String,Void,String> { //申请一个接口类对象 private Icallbacks icallbacks; //将无参构造设置成私有的,使之在外部不能够调用 private MyTask(){} //定义有参构造方法 public MyTask(Icallbacks icallbacks) { this.icallbacks = icallbacks; } @Override protected String doInBackground(String... params) { String str=""; try { //使用HttpUrlConnection URL url=new URL(params[0]); HttpURLConnection connection=(HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); if(connection.getResponseCode()==200){ InputStream inputStream=connection.getInputStream(); //调用工具类中的静态方法 str=StreamToString.streamToStr(inputStream,"utf-8"); } } catch (MalformedURLException e) { e.printStackTrace(); }catch (IOException e){ e.printStackTrace(); } return str; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); //解析,封装到bean,更新ui组件 icallbacks.updateUiByjson(s); } //定义一个接口 public interface Icallbacks{ /** * 根据回传的json字符串,解析并更新页面组件 * @param jsonstr */ void updateUiByjson(String jsonstr); }}
2、
package com.example.gridview.Utils;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;/** * Created by e531 on 2017/10/12. */public class StreamToString { public static String streamToStr(InputStream inputStream,String chartSet){ StringBuilder builder=new StringBuilder(); try { BufferedReader br=new BufferedReader(new InputStreamReader(inputStream,chartSet)); String con; while ((con=br.readLine())!=null){ builder.append(con); } br.close(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return ""; }}
3、在Activity里的具体使用方法
//根据要获取的数据所在Bean类所在的位置创建List集合存储获取的数据List<Bean.DataBean> list=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //加载布局 setContentView(R.layout.activity_main); //请求数据 MyTask myTask=new MyTask(new MyTask.Icallbacks() { //工具类里的接口 @Override public void updateUiByjson(String jsonstr) { Gson gson=new Gson(); //gosn解析 Bean bean = gson.fromJson(jsonstr, Bean.class); list=bean.getData(); //解析的数据赋值的刚创建的类 Log.i("nxx",list.toString()); //测试是否获取到数据 } }); myTask.execute("http://api.expoon.com/AppNews/getNewsList/type/1/p/1");//执行方法,参数是网络接口 }
////////////////////////////////////////////////////////////////////////
/////package com.example.shuzu;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.LoginFilter;import android.util.Log;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private List<String > list=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //加载页面 setContentView(R.layout.activity_main); // MyTask myTask=new MyTask(new MyTask.Icallbacks() { @Override public void updateUiByjson(String jsonstr) { try { JSONArray array = new JSONArray(jsonstr); for (int i = 0; i < array.length(); i++) { String string = array.getString(i); list.add(string); } Log.i("nxx",list.toString()); } catch (Exception e) { e.printStackTrace(); } } }); myTask.execute("http://www.toutiao.com/hot_words/"); }}
阅读全文
0 0
- Connection请求数据工具类
- Connection请求数据
- 数据请求工具类ios
- Xutils3.0请求网络数据工具类
- 网络请求数据工具封装
- 封装工具类,判断是否连接网络,请求数据
- Http请求工具类
- http请求工具类
- http请求工具类
- HTTP 请求工具类
- http请求工具类
- 网络请求工具类
- 网络请求工具类
- HTTP请求工具类
- HTTP请求工具类
- 网络请求工具类
- http请求工具类
- http请求工具类
- Octave中句柄@的用法
- SGU103代码能力训练
- windows10 U盘启动盘制作
- 内联函数与宏定义的区别
- 缓冲运动 //缓冲运动 (目标值
- Connection请求数据工具类
- 分层背包 [HNOI2007]梦幻岛宝珠
- 免安装mysql-5.7.17-winx64配置详解
- 一周第三次课 2017.10.18 使用PuTTY及xshell远程连接Linux并使用密钥认证
- java学习开始,输出Welcome to Java!
- 购物车Demo
- QT5.9.1和opencv3.3配置(win10)
- 关于游戏中文件数据和系统文件和程序调用的几个技术方案
- 第七周项目二 链队算法库