volley使用

volley是谷歌推出的获取网络数据的方法,与okhttp相比更加灵活,快捷,图片处理比较好,唯一缺点就是不适合上传下载,整合了一个小例子几行代码搞定很便捷。
//首先在应用层定义成为全局可用的方便整体修改

public class MyApplication extends Application {

    public static RequestQueue queue;
    @Override
        public void onCreate() {

            super.onCreate();
queue = Volley.newRequestQueue(getApplicationContext());
    }

    public static RequestQueue getHttpQueue(){
        return queue;
    }
}
//此处是javabean类存储json数据

public class JavaBean {
public String resultcode;
public String reason;
public Result result;

public class Result{
    public String province;
    public String city;
    public String areacode;
    public String zip;
    public String company;
    public String card;

}

}

这里写代码片

//volley的用法 在此处用的是Gson解析json

public class MainActivity extends Activity {

    private Editable num;
    private TextView tv;
    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        EditText et = (EditText)findViewById(R.id.et);
        num = et.getText();
        btn = (Button)findViewById(R.id.btn);
        tv = (TextView) findViewById(R.id.tv);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                volleg_Get();               
            }
        });       
    }
    private void volleg_Get() {
    //这个是请求数据的接口
        String url="http://apis.juhe.cn/mobile/get?phone="+num+"&key=3a6e26e2195864bdf40ec4d39e5e9a92";
        //在此处不确定返回格式是json还是xml用的stringrequest 如果知道可以用JsonArrayRequest
        StringRequest request = new StringRequest(Method.GET, url, new Listener<String>() {
            //请求成功
            @Override
            public void onResponse(String arg0) {
                ArrayList<String> list = new ArrayList<String>();
                list.clear();
                Gson gson = new Gson();
                JavaBean bean = gson.fromJson(arg0, JavaBean.class);            
                    list.add(bean.result.province);
                    list.add(bean.result.city);
                    list.add(bean.result.areacode);
                    list.add(bean.result.zip);
                    list.add(bean.result.company);
                    list.add(bean.result.card);
                    for (int i = 0; i < list.size(); i++) {
                        tv.setText(list.get(i));
                    }           
            }
        },new Response.ErrorListener(){
            //请求失败
            @Override
            public void onErrorResponse(VolleyError arg0) {
                Toast.makeText(getApplication(), arg0.toString(), 0).show();
            } 

        });
        //设置一个标签便于操纵队列
        request.setTag("get");
        MyApplication.getHttpQueue().add(request);      
    }   
}
//别忘了在关闭该页的时候清除掉队列避免内存的消耗
@Override
    protected void onStop() {
        // TODO Auto-generated method stub
        super.onStop();
        MyApplication.getHttpQueue().cancelAll("get");
    }

最后别忘了添加权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值