网络获取json数据并解析

1、升级流程分析

2、Android通过URL获取网络资源

JSONObject来解析Json字符串

                   //创建URL对象
                    //本机地址用localhost, 但是如果用模拟器加载本机的地址时,可以用ip(10.0.2.2)来替换
                    URL url=new URL("http://10.0.2.2:8080/update.json");
                    //第一步是creat
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    conn.setRequestMethod("GET");//设置请求方法
                    conn.setConnectTimeout(5000);//设置连接超时
                    conn.setReadTimeout(5000);
                    conn.connect();// 连接服务器
                    int responseCode = conn.getResponseCode();// 获取响应码
                    if(responseCode==200){
                        InputStream inputStream=conn.getInputStream();
                        String result=StreamUtils.readFormStream(inputStream);
                        // 解析json
                        JSONObject jo=new JSONObject(result);
                        String versionName = jo.getString("versionName");
                        versionCode=jo.getInt("versionCode");
                        description=jo.getString("description");
                        String downloadUrl=jo.getString("downloadUrl");
                        if(versionCode>getVersionCode()){
                            msg.what=CODE_UPDATE_DIALOG;
                        }else{
                            msg.what = CODE_ENTER_HOME;
                        }
                    }

3、连接网络时候要在线程中,如果更新界面也要在线程中,所以要使用Handler和Message结合,使用Handle对象把Message发送出去,在Handle对界面进行更新。

Handler handler=new Handler(){
        public void handleMessage(Message msg) {
            switch(msg.what){
            case CODE_UPDATE_DIALOG:
                showUpdateDailog();
                break;
            case CODE_URL_ERROR:
                Toast.makeText(SplashActivity.this, "网址错误", Toast.LENGTH_SHORT).show();
                enterHome();
                break;
            case CODE_ENTER_HOME:
                enterHome();
                break;
            case CODE_NET_ERROR:
                Toast.makeText(SplashActivity.this, "没有网络", Toast.LENGTH_SHORT).show();
                enterHome();
                break;
            case CODE_JSON_ERROR:
                Toast.makeText(SplashActivity.this, "JSON解析错误", Toast.LENGTH_SHORT).show();
                enterHome();
                break;

            }
        };
    };

4、使用xUtils组件进行大文件的上传下载。

HttpUtils http = new HttpUtils();
HttpHandler handler = http.download("http://apache.dataguru.cn/httpcomponents/httpclient/source/httpcomponents-client-4.2.5-src.zip",
    "/sdcard/httpcomponents-client-4.2.5-src.zip",
    true, // 如果目标文件存在,接着未完成的部分继续下载。服务器不支持RANGE时将从新下载。
    true, // 如果从请求返回信息中获取到文件名,下载完成后自动重命名。
    new RequestCallBack<File>() {

        @Override
        public void onStart() {
            testTextView.setText("conn...");
        }

        @Override
        public void onLoading(long total, long current, boolean isUploading) {
            testTextView.setText(current + "/" + total);
        }

        @Override
        public void onSuccess(ResponseInfo<File> responseInfo) {
            testTextView.setText("downloaded:" + responseInfo.result.getPath());
        }

        @Override
        public void onFailure(HttpException error, String msg) {
            testTextView.setText(msg);
        }
});
时间: 2024-10-03 15:00:32

网络获取json数据并解析的相关文章

android通过httpClient请求获取JSON数据并且解析

android通过httpClient请求获取JSON数据并且解析:http://www.cnblogs.com/gzggyy/archive/2013/05/08/3066288.html Android--使用Http向服务器发送请求并取得返回结果,下载图片:http://www.2cto.com/kf/201307/229489.html Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据):http://blog.csdn.net/he

iOS开发网络篇—JSON数据的解析

iOS开发网络篇—JSON数据的解析 iOS开发网络篇—JSON介绍 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典和数组 {"name" : "jack", "age" : 10} {"names" : ["jack", "rose", "jim

Android Volley 库通过网络获取 JSON 数据

本文内容 什么是 Volley 库 Volley 能做什么 Volley 架构 演示 Volley 库通过网络获取 JSON 数据 参考资料 Android 关于网络操作一般都会介绍 HttpClient 以及 HttpConnection 这两个包.前者是 Apache 开源库,后者是 Android 自带 API.企业级应用,一般都会选择使用已经封装好的 http 框架.比较流行有 Volley.android-async-http.retrofit.okhttp.androidquery.

Android 网络请求json数据,解析json数据,生成对应的java bean类一步到位,快速开发

Android 网络请求一般都涉及到图片和JSON数据,怎样快速的请求网络JSON数据,解析JSON数据,并且一步生成自己想要的Java bean实体类?这个涉及到Android 开发效率的问题.由于接触Android 网络这方面比较多,自然就找到一些好的方法来快速开发Android 网络模块的相关内容,接下来就为大家揭晓 一步快速请求,解析JSON 数据生成对应的Java bean实体类的方法. 注:我们先把思路讲解下吧: 1.网络请求JSON数据代码可以自己写,当然我还是推荐使用网络上开源的

Java从网络中请求获取JSon数据以及解析JSON数据----(自创,请注明)

Json数据是比较常用的数据类型解析,优点就不多说啦.来看看方法: public static JSONObject getJsonObject(String url) { JSONObject jsonObject = null; try { HttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); HttpParams httpParams = httpClient.getPara

Volley 库通过网络获取 JSON 数据

1.通过Volley的newRequestQueue(Context context)方法初始化RequestQueue对象 2.定义一个JSON数据的字符串网络地址  可用的JSON接口(http://www.weather.com.cn/adat/sk/101010100.html) 3.根据Volley提供的JsonObjectRequest(int method, String url, JSONObject jsonRequest, Listener<JSONObject> list

Python 获取接口数据,解析JSON,写入文件

Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而且python看起来更直观一些: 以下是代码: import types import urllib2 import json duan ="--------------------------" #在控制台断行区别的 #利用urllib2获取网络数据 def registerUrl():

用JQuery解析获取JSON数据

JSON 是一种比较方便的数据形式,下面使用$.getJSON方法,实现获得JSON数据和解析,都挺方便简单的.从http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=? 这个地址得到JSON数据 并且分析里面的结构,生成图片和相关链接等: $(function(){ var url="http://api.flickr.co

使用异步任务加载网络上json数据并加载到ListView中

Android中使用网络访问来加载网上的内容,并将其解析出来加载到控件中,是一种很常见的操作.但是Android的UI线程(也就是主线程)中是不允许进行耗时操作的,因为耗时操作会阻塞主线程,影响用户体验.而访问网络同样是一个耗时操作,并且Android3.0以后是不允许在主线程中访问网络的,所以我们这里用Android封装好的AsyncTask类来完成这些耗时操作. 项目的目录结构如下: AsyncTask是一个抽象类,实际上他是封装好的一个类,底层也是用handler和thread来实现的,我