1.首先获得url,传入URL类,利用URL的openconnection方法,获得URLConnection,去的输入流,进行操作,具体代码如下:

public class NetConnection{
    public NetConnection(final String url,final HttpMethod method,final SuccessCallback successCallback,
            final FailCallback failCallback,final String ... key){
        new AsyncTask<Void, Void, String>() {

            protected String doInBackground(Void... params) {
                StringBuffer parameter = new StringBuffer();
                for (int i = 0; i < key.length; i+=2) {
                    parameter.append(key[i]).append("=").append(key[i+1]).append("&");
                }
                try {
                    URLConnection uc = null;
                    switch(method){
                    case POST:
                        uc = new URL(url).openConnection();
                        uc.setDoInput(true);
                        uc.setDoOutput(true);
                        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(uc.getOutputStream(),
                                Config.CHARSET));
                        bw.write(parameter.toString());
                        bw.flush();
                        break;
                    default:
                        uc = new URL(url+"?"+parameter.toString()).openConnection();
                        break;
                    }
                    System.out.println("request url:"+uc.getURL());
                    System.out.println("request data:"+parameter);
                    BufferedReader bf = new BufferedReader(new InputStreamReader(uc.getInputStream(), Config.CHARSET));
                    String line = null;
                    StringBuffer sb = new StringBuffer();
                    while ((line = bf.readLine()) != null) {
                        sb.append(line);
                    }
                    System.out.println("result:"+sb);
                    return sb.toString();
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return null;
            }
            @Override
            protected void onPostExecute(String result) {
                if (result != null) {
                    if (successCallback != null) {
                        successCallback.onSuccess(result);
                    }
                }else {
                    if (failCallback != null) {
                        failCallback.onFail();
                    }
                }
                super.onPostExecute(result);
            }
        }.execute();
    }
    public static interface SuccessCallback{
        void onSuccess(String result);
    }
    public static interface FailCallback{
        void onFail();
    }
}

里面封装了两个接口,SuccessCallback和FailCallback,分别用于实现这个类的时候重写,来执行取得数据和灭幼取得数据的情况。参数中用字符串包含了请求参数。

android解析网络json数据(1)的更多相关文章

  1. 模拟QQ侧滑控件 实现三种界面切换效果(知识点:回调机制,解析网络json数据,fragment用法等)。

    需要用到的lib包 :解析json  gson包,从网络地址解析json数据成String字符串的异步网络解析工具AsyncHttpClient等 下载地址:点击下载 Xlistview 下拉上拉第三 ...

  2. 解析网络json数据,模拟美团界面显示。

    <?xml version="1.0" encoding="UTF-8"?> <RelativeLayout xmlns:android=&q ...

  3. Android解析服务器Json数据实例

    Json数据信息如下: { "movies": [ { "movie": "Avengers", "year": 201 ...

  4. [Swift通天遁地]四、网络和线程-(5)解析网络请求数据:String(字符串)、Data(二进制数据)和JSON数据

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  5. android 复杂的json数据解析

    1.通过谷歌的Gson来进行解析: json数据:sTotalString = {"message":"success","result": ...

  6. Gson解析复杂Json数据

    背景                                                                   json是一种数据格式,便于数据传输.存储.交换. gson是 ...

  7. 解析天气预报JSON数据

    解析天气预报JSON数据 JSON字符串 constjson2 = '{' + #13#10 +'"error":0,' + #13#10 +'"status" ...

  8. mormot解析天气预报JSON数据

    mormot解析天气预报JSON数据 uses SynCommons; constjson2 = '{' + #13#10 +'"error":0,' + #13#10 +'&qu ...

  9. Android网络请求与数据解析,使用Gson和GsonFormat解析复杂Json数据

    版权声明:未经博主允许不得转载 一:简介 [达叔有道]软件技术人员,时代作者,从 Android 到全栈之路,我相信你也可以!阅读他的文章,会上瘾!You and me, we are family ...

随机推荐

  1. Mysql之视图的操作

    视图的操作: 1.视图的创建: create view view_name as 查询语句; 2.视图的查看: show tables;// 显示所有的表和视图 show create view vi ...

  2. python文件结构与import用法

    首先上一张总结图: 在pycharm中,一般不会将当前文件目录自动加入自己的sourse_path.如果遇到无法import同级目录下的其他模块, 右键make_directory as-->S ...

  3. [ZJOI2016]小星星

    题目描述 小Y是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有n颗小星星,用m条彩色的细线串了起来,每条细线连着两颗小星星. 有一天她发现,她的饰品被破坏了,很多细线都被拆掉了.这个饰品只剩下了 ...

  4. bzoj 2560: 串珠子

    Description 铭铭有n个十分漂亮的珠子和若干根颜色不同的绳子.现在铭铭想用绳子把所有的珠子连接成一个整体. 现在已知所有珠子互不相同,用整数1到n编号.对于第i个珠子和第j个珠子,可以选择不 ...

  5. ●UVa 11346 Probability

    题链: https://vjudge.net/problem/UVA-11346题解: 连续概率,积分 由于对称性,我们只用考虑第一象限即可. 如果要使得面积大于S,即xy>S, 那么可以选取的 ...

  6. ●BZOJ 3998 [TJOI2015]弦论

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3998题解: 后缀自动机. 当T=0时, 由于在后缀自动机上沿着trans转移,每个串都是互不 ...

  7. 【LSGDOJ 1351】关灯

    题目描述 多瑞卡得到了一份有趣而高薪的工作.每天早晨他必须关掉他所在村庄的街灯.所有的街灯都被设置在一条直路的同一侧. 多瑞卡每晚到早晨 5 点钟都在晚会上,然后他开始关灯.开始时,他站在某一盏路灯的 ...

  8. poj 1741 树的点分治(入门)

    Tree Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 18205   Accepted: 5951 Description ...

  9. poj 1811 随机素数和大数分解(模板)

    Sample Input 2 5 10 Sample Output Prime 2 模板学习: 判断是否是素数,数据很大,所以用miller,不是的话再用pollard rho分解 miller : ...

  10. Codeforces Round#433 简要题解

    来自FallDream的博客,未经允许,请勿转载,谢谢. 我的号自从几个月前姿势水平过低疯狂掉分之后就没动过了  突然想上点分  就打了一场Div1  没想到打到了rank5  一发上橙了,可还行. ...