Android原生请求json服务器数据
2018-03-01 14:05
447 查看
一,首先定义一个触发事件,若是点击事件,就写个buttom;
二,请求网络数据需要开启线程,因此要写的是什么呢?请看下面详细教程;
接下来你懂得了,真真切切的请求服务器json数据了,体验获取到json数据以及json解析的方法;
没错,这样就可以完美的请求到服务器json数据了,因此要注意的地方又两个知识点,首先是android原生请求要开启线程,以防数据量过大内存泄露,二者是解析json的时候,博主我用到的是Gson解析,直接把服务器路径的json字符串放进去就ok了,不会的网上查下gson使用,是不是瞬间提升档次不少?希望每篇文章都可以帮助到大家学习,一起尽情期待更好的文章发布吧!哈哈
二,请求网络数据需要开启线程,因此要写的是什么呢?请看下面详细教程;
public class LoginActivity extends AppCompatActivity implements View.OnClickListener { private Handler handler;//开启线程是需要的 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); handler=new MyHandler();//此时new一个 MyHandler() back=(LinearLayout)findViewById(R.id.back); back.setOnClickListener(this); new PostThread().start();//用post方法发送请求 }
接下来你懂得了,真真切切的请求服务器json数据了,体验获取到json数据以及json解析的方法;
class PostThread extends Thread{ public void run(){ HttpURLConnection conn=null; String urlStr="。。。。。";//这个路径就用自己的咯~ InputStream is = null; String resultData = ""; try { URL url = new URL(urlStr); //URL对象 conn = (HttpURLConnection)url.openConnection(); //使用URL打开一个链接,下面设置这个连接 conn.setRequestMethod("POST"); //使用POST请求 if(conn.getResponseCode()==200) {//返回200表示相应成功 is = conn.getInputStream(); //获取输入流 InputStreamReader isr = new InputStreamReader(is); BufferedReader bufferReader = new BufferedReader(isr); String inputLine = ""; 4000 while ((inputLine = bufferReader.readLine()) != null) { resultData += inputLine + "\n"; } System.out.println("post方法取回内容:" + resultData); showRes("post方法取回内容:" + resultData); parseJSONWithJSONObject(resultData); } } catch (IOException e) { e.printStackTrace(); } } } //方法一:使用JSONObject private void parseJSONWithJSONObject(String resultData) { try { JSONObject jsonObject=new JSONObject(resultData); String tips=jsonObject.getString("tips"); if(tips.equals("ok")){ JSONObject userBeanObject=jsonObject.getJSONObject("userBean");//这里的json解析,是用的gson解析,获取到userbean,既方便又好使; String age=userBeanObject.getString("email");// 用户名 json_to.setText(age); } } catch (Exception e) { e.printStackTrace(); } } //用于主线程发送消息 public void showRes(String res){ Bundle bundle=new Bundle(); bundle.putString("res",res);//bundle中也可以放序列化或包裹化的类对象数据 Message msg=handler.obtainMessage();//每发送一次都要重新获取 msg.setData(bundle); handler.sendMessage(msg);//用handler向主线程发送信息 } //自定义handler类 class MyHandler extends Handler { @Override //接收别的线程的信息并处理 public void handleMessage(Message msg) { Bundle bundle=msg.getData(); //json_one.setText(bundle.get("res").toString()); } }
没错,这样就可以完美的请求到服务器json数据了,因此要注意的地方又两个知识点,首先是android原生请求要开启线程,以防数据量过大内存泄露,二者是解析json的时候,博主我用到的是Gson解析,直接把服务器路径的json字符串放进去就ok了,不会的网上查下gson使用,是不是瞬间提升档次不少?希望每篇文章都可以帮助到大家学习,一起尽情期待更好的文章发布吧!哈哈
相关文章推荐
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- 初探Android中的请求服务器并解析返回的json数据
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android--使用原生技术实现ListView(原生技术实现网络异步请求,解析json数据)
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- android使用asynchttp网络请求服务器返回json数据并显示在手机
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- 从服务器上请求json数据,并解析json数据
- Android入门:通过JSON数据与服务器进行通信
- 初涉Ajax,以post或get方法发送数据,以json或xml形式接收服务器返回的请求
- 使用json实现android服务器向客户端传数据
- android与服务器进行json数据交换的工具类
- Android客户端获取服务器的json数据(一)
- Android之向中国天气网发送GET请求获取JSON数据实例
- Android和Django服务器传输json数据
- Android向Web服务器发送Post请求并返回数据
- android通过httpClient请求获取JSON数据并且解析
- android开发案例之使用JSON数据向服务器提交和获取服务器传递的Json数据
- Android客户端获取服务器的json数据(二)
- android通过httpClient请求获取JSON数据并且解析