OkGo

OkGo

MainActivity 用Okgo获取数据

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button bt_get;
    private Button bt_post;
    private Button bt_downLoad;
    private SeekBar seekbar;
    private Button bt_upLoad;

    private String get_url = "http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1";
    private String post_url = "http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&";
    private String down_url = "http://p1.music.126.net/yC_df5u0myXVp-bM99K3Lw==/5870292580832850.jpg";
    private String up_url = "http://10.1.4.52/hfs/";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE},100);
        initView();
    }

    private void initView() {
        bt_get = (Button) findViewById(R.id.bt_get);
        bt_post = (Button) findViewById(R.id.bt_post);
        bt_downLoad = (Button) findViewById(R.id.bt_downLoad);
        seekbar = (SeekBar) findViewById(R.id.seekbar);
        bt_upLoad = (Button) findViewById(R.id.bt_upLoad);

        bt_get.setOnClickListener(this);
        bt_post.setOnClickListener(this);
        bt_downLoad.setOnClickListener(this);
        bt_upLoad.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.bt_get:
                doget();
                break;
            case R.id.bt_post:
                dopost();
                break;
            case R.id.bt_downLoad:
                download();
                break;
            case R.id.bt_upLoad:
                upload();
                break;
        }
    }

    private void upload() {
        OkGo.<File>post(up_url).isMultipart(true).params("file",new File("/storage/emulated/0/houzi.mp4"),"bbbb.mp4").execute(new FileCallback() {
            @Override
            public void onSuccess(Response<File> response) {
                Toast.makeText(MainActivity.this, "上传成功", Toast.LENGTH_SHORT).show();
            }
        });
    }

    private void download() {
        OkGo.<File>get(down_url).execute(new FileCallback("/storage/emulated/0","aaaaa.jpg") {
            @Override
            public void onSuccess(Response<File> response) {
                Toast.makeText(MainActivity.this, "下载完成", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void downloadProgress(Progress progress) {
                super.downloadProgress(progress);
                seekbar.setProgress((int) (progress.fraction*100));
            }
        });
    }

    private void dopost() {
        HashMap<String,String> map = new HashMap<>();
        map.put("limit","20");
        map.put("page","1");
        OkGo.<String>post(post_url).params(map).execute(new StringCallback() {
            @Override
            public void onSuccess(Response<String> response) {
                Toast.makeText(MainActivity.this, ""+response.body(), Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onError(Response<String> response) {
                super.onError(response);
                Toast.makeText(MainActivity.this, "请求失败"+response, Toast.LENGTH_SHORT).show();
            }
        });
    }

    private void doget() {
        OkGo.<String>get(get_url).execute(new StringCallback() {
            @Override
            public void onSuccess(Response<String> response) {
                Toast.makeText(MainActivity.this, ""+response.body(), Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onError(Response<String> response) {
                super.onError(response);
                Toast.makeText(MainActivity.this, "请求失败"+response.body(), Toast.LENGTH_SHORT).show();
            }
        });
    }
}

OkGo的二次封装

自定义JsonCallBack抽象类 继承自AbsCallBack

public abstract class JsonCallBack<T> extends AbsCallback<T> {
    private Class<T> tClass;

    public JsonCallBack(Class<T> tClass) {
        this.tClass = tClass;
    }

    @Override
    public T convertResponse(Response response) throws Throwable {
        ResponseBody body = response.body();
        if (body == null){
            return null;
        }
        String json = body.string();
        Gson gson = new Gson();
        if (tClass==null){
            return null;
        }
        T t = gson.fromJson(json, tClass);
        return t;
    }
}

MainActivity 获取数据

public class Main2Activity extends AppCompatActivity implements View.OnClickListener {
    private String url_xia = "http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1";
    private String url_dou = "https://www.apiopen.top/satinApi?type=1&page=2";
    private String url_banner = "http://api.yunzhancn.cn/api/app.interface.php?siteid=78703&itemid=2&act=ad_app";
    private Button bt_xia;
    private Button bt_dou;
    private Button bt_banner;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        initView();


    }

    private void initView() {
        bt_xia = (Button) findViewById(R.id.bt_xia);
        bt_dou = (Button) findViewById(R.id.bt_dou);
        bt_banner = (Button) findViewById(R.id.bt_banner);

        bt_xia.setOnClickListener(this);
        bt_dou.setOnClickListener(this);
        bt_banner.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.bt_xia:
                OkGo.<XiaBean>get(url_xia).execute(new JsonCallBack<XiaBean>(XiaBean.class) {
                    @Override
                    public void onSuccess(Response<XiaBean> response) {
                        List<XiaBean.DataBean> data = response.body().getData();
                        String title = data.get(0).getTitle();
                        Toast.makeText(Main2Activity.this, ""+title, Toast.LENGTH_SHORT).show();
                    }
                });
                break;
            case R.id.bt_dou:
                OkGo.<DouBean>get(url_dou).execute(new JsonCallBack<DouBean>(DouBean.class) {
                    @Override
                    public void onSuccess(Response<DouBean> response) {
                        DouBean douBean = response.body();
                        Toast.makeText(Main2Activity.this, ""+douBean, Toast.LENGTH_SHORT).show();
                    }
                });
                break;
            case R.id.bt_banner:
                OkGo.<BannerBean[]>get(url_banner).execute(new JsonCallBack<BannerBean[]>(BannerBean[].class) {
                    @Override
                    public void onSuccess(Response<BannerBean[]> response) {
                        BannerBean[] bannerBeans = response.body();
                        int length = bannerBeans.length;
                        Toast.makeText(Main2Activity.this, ""+length, Toast.LENGTH_SHORT).show();
                    }
                });
                break;
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值