Android简易Http框架的ZzHttp

于受夜、脱发、猝死这些语汇不止来本职场中的现,“程序员加班数日猝死办公室”、“女子马拉松加班到凌晨患癌”、“知名王者荣耀主播因过劳猝死”,这些消息往往出现在热搜上,我们还明白熬夜、过劳对于人的伤害来差不多好,可是还是控制不鸣金收兵地耗自己之人,总觉得猝死这种事不见面产生在协调身上。

和谐写的http框架。欢迎star

然前少天,一虽然新闻出现于了热搜上,可谓是相同股清流——女程序员刘平(化名)在相同家商店举行计算机工程,长期加班到深夜,每天还处于旺盛高度紧张中,为之它患有上了失眠症,身体、精神都大不如前,为能够歇一个好觉,她毅然放弃了年薪40万底办事。

Github地址:www.github.com/zhouzhuo810/ZzHttp

究竟是身在福中不知福?还是勇于放弃金钱,善待好?

ZzHttp

A http framework for simply GET and POST.

Gradle

compile 'me.zhouzhuo.zzhttp:zz-http:1.0.4'

Maven

<dependency>
  <groupId>me.zhouzhuo.zzhttp</groupId>
  <artifactId>zz-http</artifactId>
  <version>1.0.4</version>
  <type>pom</type>
</dependency>

<h1>How to use it ?</h1>

Don’t forget adding perimssions.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

If you want to see log info in logcat.

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        ZzHttp.setDebug(true);

    }
}

If there if only one baseUrl.

ZzHttp.getInstance().setBaseUrl("http://api.k780.com:88/")

If there is two or more baseUrl.

public class Api {

    private static final String ENDPOINT_ONE = "https://www.baidu.com/";
    private static final String ENDPOINT_TWO = "http://api.k780.com:88/";

    private static ZzHttp apiOne;
    private static ZzHttp apiTwo;

    public static ZzHttp getBaiduApi() {
        if (apiOne == null) {
            synchronized (Api.class) {
                if (apiOne == null) {
                    apiOne = ZzHttp.newInstance().setBaseUrl(ENDPOINT_ONE);
                }
            }
        }
        return apiOne;
    }

    public static ZzHttp getWeatherApi() {
        if (apiTwo == null) {
            synchronized (Api.class) {
                if (apiTwo == null) {
                    apiTwo = ZzHttp.newInstance().setBaseUrl(ENDPOINT_TWO);
                }
            }
        }
        return apiTwo;
    }
}

<h3>GET</h3>

return String

Api.getWeatherApi()
                .get(new HttpParams()
                        .addStringParam("app", "weather.today")
                        .addStringParam("weaid", "1")
                        .addStringParam("appkey", "10003")
                        .addStringParam("sign", "b59bc3ef6191eb9f747dd4e83c99f2a4")
                        .addStringParam("format", "json"), String.class, new Callback.ZzCallback<String>() {
                    @Override
                    public void onSuccess(String result) {
                        refreshLayout.setRefreshing(false);
                        tv.setText(result);
                    }

                    @Override
                    public void onFailure(String error) {
                        refreshLayout.setRefreshing(false);
                        Toast.makeText(MainActivity.this, error, Toast.LENGTH_SHORT).show();
                    }
                });

return Object

        Api.getWeatherApi()
                .get(new HttpParams()
                        .addStringParam("app", "weather.today")
                        .addStringParam("weaid", "1")
                        .addStringParam("appkey", "10003")
                        .addStringParam("sign", "b59bc3ef6191eb9f747dd4e83c99f2a4")
                        .addStringParam("format", "json"), WeatherEntity.class, new Callback.ZzCallback<WeatherEntity>() {
                    @Override
                    public void onSuccess(WeatherEntity result) {
                        refreshLayout.setRefreshing(false);
                        tv.setText(result.toString());
                    }

                    @Override
                    public void onFailure(String error) {
                        refreshLayout.setRefreshing(false);
                        Toast.makeText(MainActivity.this, error, Toast.LENGTH_SHORT).show();
                    }
                });

<h3>POST</h3>

return String

Api.getWeatherApi()
                .post(new HttpParams()
                        .addStringParam("app", "weather.today")
                        .addStringParam("weaid", "1")
                        .addStringParam("appkey", "10003")
                        .addStringParam("sign", "b59bc3ef6191eb9f747dd4e83c99f2a4")
                        .addStringParam("format", "json"), String.class, new Callback.ZzCallback<String>() {
                    @Override
                    public void onSuccess(String result) {
                        refreshLayout.setRefreshing(false);
                        tv.setText(result);
                    }

                    @Override
                    public void onFailure(String error) {
                        refreshLayout.setRefreshing(false);
                    }
                });

return Object

        Api.getWeatherApi()
                .post(new HttpParams()
                        .addStringParam("app", "weather.today")
                        .addStringParam("weaid", "1")
                        .addStringParam("appkey", "10003")
                        .addStringParam("sign", "b59bc3ef6191eb9f747dd4e83c99f2a4")
                        .addStringParam("format", "json"), WeatherEntity.class, new Callback.ZzCallback<WeatherEntity>() {
                    @Override
                    public void onSuccess(WeatherEntity result) {
                        refreshLayout.setRefreshing(false);
                        tv.setText(result.toString());
                    }

                    @Override
                    public void onFailure(String error) {
                        refreshLayout.setRefreshing(false);
                    }
                });

<h3>Download</h3>

        final String fileName = new File(filePath1).getName();
        String url = "http://192.168.1.102/test/image/" + fileName;
        final String dir = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "test";
        ZzHttp.getInstance().download(url, dir, new Callback.ProgressDownloadCallback() {
            @Override
            public void onProgress(float progress, int currentSize, int totalSize) {
                tv_download_result.setText(progress + ", " + currentSize + "," + totalSize);
            }

            @Override
            public void onSuccess(String result) {
                ivDown.setImageURI(Uri.fromFile(new File(dir + File.separator + fileName)));
            }

            @Override
            public void onFailure(String error) {

            }
        });

<h3>Upload(multipart/form-data)</h3>

        ZzHttp.getInstance()
                .setBaseUrl("http://192.168.1.102/")
                .post("test/test.php", new HttpParams()
                        .setConnectTimeout(10000)
                        .setReadTimeout(10000)
                        .addBodyParam("file1", file1)
                        , UploadEntity.class, new Callback.ProgressUploadCallback<UploadEntity>() {

                    @Override
                    public void onProgress(float progress, int currentSize, int totalSize) {
                        tv_result.setText(progress + ", " + currentSize + "," + totalSize);
                    }

                    @Override
                    public void onSuccess(UploadEntity result) {
                        tv_result.setText(result.getCode() + "," + result.getData().getMsg());
                    }

                    @Override
                    public void onFailure(String error) {
                        Toast.makeText(MainActivity.this, error, Toast.LENGTH_SHORT).show();
                    }
                });

玩安卓版王者荣耀的情侣,刷金币看这里
链接:http://pan.baidu.com/s/1gfKIeh9
辅助群:171977523

消写安卓程序的伴侣请关注我的淘宝店铺:
小周来辅助您

年薪40万VS充足睡眠,你怎么选?

金VS健康,本就是是心酸的命题

过剩口心中还知晓,健康是极要之,无论如何,身体都是革命的老本。可是道理大家都懂得,真正做起来,却同时不便衡量权重。还记今年之台风天,有同等个十分叔用身体去档即将于强风睡倒的新车,却被车压住身亡。很多网友表示未可知掌握这种“要钱不要命”的做法,可是有号网友的意见却吸引了豪门之深思——“不交那么的境况,谁还未克体味他的感触,这辆新车是只要用来拉客的,是她们下最后的涵养,是活着将食指逼成了这样,把好之性命都看贱了。”

是的,现实确实如此,在年薪40万和丰富的上床面前,还是产生许多人会晤失去挑年薪40万,因为生活为我们的下压力最要命、牵绊太多,要赚钱多少钱才能够撑起一个家?为了承受起生而也丁的义务,我们用钱财。

常规以及金,一定要是舍弃一个乎?斯命题说起来有几心酸,但也是当今社会我们且如面临的题材,年薪40万与丰硕的歇息,你晤面怎么选?

年薪40万,背后交的代价是啊?

正规、自由、好情绪,从此是路人

舍健康。咱得以看来刘平的事,程序员,仅仅这三单字,就被人口联想到平等布置张疲惫的面子,比眼睛还蛮之黑眼圈,深夜以计算机前狂敲键盘的身形。睡眠是一个人口活着的维系,打破人之自然规律,自然是使提交代价的。

舍自由。大强度的行事表示正在占有了咱生活大部分的年华,工作几乎占据满了所有底活着,没有工夫去陪家人,没有时间发展协调之兴趣爱好,没有工夫一个人独自处,我们尽管比如于办公大楼困住了同一,寸步难行。

放弃好心气。焦虑,已经成为80%后生的家常便饭,90晚底思年龄与“油腻的中年”已经差不多,虽然还地处青春时代,但摆口闭口便是购房压力、工作焦虑,每天就留唉声叹气。

世家也许还在羡慕那些高薪的人头,但是同客耕耘一客收获,一份付出同样份回报。高薪背后没日没夜的突击,巨大的精神压力,却无是几个人口能够接受的从底。

“生及谋生”,到底该怎么平衡?

迫切,胸无大志,都是个体选择的权

“生及谋生”本就是是一个总人口步入社会不得不面临的题材。要“生”,你尽管得使照料好自己的身体,满足自己核心的生理需求,你如果学会社交,放松心情,偶尔与融洽独处,倾听自己的真心话,这才是大之含义。而“谋生”,就是要错过赢得“生”的财力,你只能失去按生理需求,缩减社交,精神高度集中,放弃与温馨相处,而是去你该有些则。

为“谋生”,老板的加班命令不能够抗,业绩指标拼命要达成,客户之无理要求有免可知反驳,我们的吗和谐假如生存的想法逐渐让削弱,慢慢地活动符合“无欲”的状态,仅仅是为了赚钱而挣。我们将这么的日子当做人生常态,因为想生下去,就使负担由谋生的代价。

只是,这个代价到底价值不值?每个人都生自己的答案。我们可见到不少总人口且要涌向同线城市,追求那些高薪但强强度的做事,把成功的规范定为打响,财产富足,但是呢有越来越多之丁,放弃这些令人羡慕的工作,去追求健康及自由。其实外人都难去评价别人急功近利或心中无大志,都是个人的选择的权。

只好承认,健康和钱财,梦想和具体都随时当博弈。不过人究竟该怎么生活在,本无定数,所以放弃金钱选择健康,或者吃身体失去追金钱,都无啊值得惋惜和熊的,只能说现在期为了我们再多之取舍空间,希望每个人犹能够当如此的长空受到,找到真正符合自己的人生。

相思了解又多的差事攻略,请关注E职一征缴

拉动您游戏化养职业

力克在设计,获得开挂的人生

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website