手写高并发网络请求框架

来源:互联网 发布:网络推广平均工资 编辑:程序博客网 时间:2024/05/20 10:15

1、导入依赖

compile 'com.singleshu88:OkHttpLemon:1.0.2'compile 'com.google.code.gson:gson:2.8.1'
2、application中注册

OkHttpLemon.init().initOptions();

3、下载wps

OkHttpLemon.init()        .url(wpsUrl)        .downFilePath(Environment.getExternalStorageDirectory() + "/wps.apk")        .executeDown(new IDownloadCallback() {            @Override            public void onDownTotalLength(long totalLen) {            }            @Override            public void onDownCurrentLenChange(long alreadyDownLen, double downPercent, long speed) {                Log.i("tag00", "-----已下载  " + alreadyDownLen / 1024 / 1024 + "M  下载长度  " + downPercent * 100 + "%   " + "下载速度:" + speed / 1000 + "k/s");            }            @Override            public void onFinish(long alreadyDownLen, long totalLen, String stratTime, String finishTime) {                Log.i("tag00", "下载成功。" + stratTime + "  " + finishTime);            }            @Override            public void onEorror(int errorCode, String ts) {                Log.i("tag00", "下载异常:" + "  errorCode  " + errorCode + " errorMsg " + ts);            }            @Override            public void onDownStatusChange(DownloadStatus downStatus) {                Log.i("tag00", "状态变更:" + downStatus);            }        });
4、下载文件

OkHttpLemon.init()        .url(tabaoUrl)        .executeDown(new IDownloadCallback() {            @Override            public void onDownTotalLength(long totalLen) {            }            @Override            public void onDownCurrentLenChange(long alreadyDownLen, double downPercent, long speed) {                Log.i("tag00", "-----已下载  " + alreadyDownLen / 1024 / 1024 + "M  下载长度  " + downPercent * 100 + "%   " + "下载速度:" + speed / 1000 + "k/s");            }            @Override            public void onFinish(long alreadyDownLen, long totalLen, String stratTime, String finishTime) {                Log.i("tag00", "下载成功。");            }            @Override            public void onEorror(int errorCode, String ts) {                Log.i("tag00", "下载异常:" + "  errorCode  " + errorCode + " errorMsg " + ts);            }            @Override            public void onDownStatusChange(DownloadStatus downStatus) {                Log.i("tag00", "状态变更:" + downStatus);            }        });
5、暂停、开始下载

OkHttpLemon.init().pause(wpsUrl);
OkHttpLemon.init().start(wpsUrl);

6、get请求

OkHttpLemon.init().url(Api.BASE_URL+Api.QUERY_POKING)        .get(QueryBean.class)        .execute(new IDataListener<QueryBean>() {            @Override            public void onSuccess(QueryBean s) {                Toast.makeText(MainActivity.this,"-------"+s.getData().getAmount(),Toast.LENGTH_LONG).show();            }            @Override            public void onError(int code, String ts) {            }        });

7、post请求

OkHttpLemon.init().url("http://v3.wufazhuce.com:8000/api/praise/add")                        .postString("itemid", "1644")                        .postString("type", "hpcontent")                        .executes(new IDataListener<String>() {                            @Override                            public void onSuccess(String s) {                                Log.i("tag00", s);//                                Toast.makeText(MainActivity.this,"-------"+s,Toast.LENGTH_LONG).show();                                Gson gson=new Gson();                                Bean bean = gson.fromJson(s, Bean.class);                                Toast.makeText(MainActivity.this,"-------"+bean.getMsg(),Toast.LENGTH_LONG).show();                            }                            @Override                            public void onError(int code, String ts) {                                Log.i("tag00", "code:" + code + "提示:" + ts);                            }                        });




原创粉丝点击