[倾力之作]android轻量级网络请求框架MyHttputils

本文详细介绍了Android轻量级网络请求框架MyHttpUtils的使用,包括get、post请求,文件下载与上传,错误处理等。该框架支持http/https协议,具有日志打印功能,并提供了错误信息对照表,适用于大部分网络请求场景。
摘要由CSDN通过智能技术生成

[倾力之作]android轻量级网络请求框架MyHttputils

尊重原创,转载请注明出处: http://blog.csdn.net/qq137722697

一、前言

本版代码全部重构,使用了策略模式和构造模式来组织代码,增加了更加人性化的请求构造,代码质量提高、效率显著提升。(但是使用风格基本没变哦)

2.0.2版本的基本的用法在《android网络请求框架》一个轻量级的异步网络请求框架MyHttpUtils(新版更新记录,版本号:2.X)中有过详细的介绍。下面是对2.1.5版的详细使用介绍,对源码感兴趣的伙伴可以移步github了解更多的消息。

二、功能介绍

  • 1、支持get、post请求;

  • 2、支持http和https的协议;

  • 3、支持设置连接、读取超时时间(可选);

  • 4、支持json格式的请求结果(无论json格式多复杂,都能搞定);

  • 5、支持传入JavaBean对象(解析之后的javabean对象);

  • 6、支持回调方法中反应传入javabean对象,这样可以在回调方法中直接拿到解析过后的javabean对象;

  • 7、支持回调方法中更新UI(所以叫异步请求了);

  • 8、支持文件下载;—->带下载进度回调方法

  • 9、支持单文件上传;

  • 10、支持多文件上传;

  • 11、支持请求完成后回调—>onComplete方法;

  • 12、支持直接获取字符串;

  • 13、支持参数与文件同时上传;

  • 14、提供错误信息处理类;

MyHttpUtils满足了大部分的网络请求了,而且非常轻量级哦(大小:20.76k)

三、快速使用

使用gradle添加依赖(添加完之后Sync一下):

 compile 'com.huangdali:myhttputils:2.1.5'

当然了网络权限可别忘加哦

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

文件上传和下载也需要添加权限(不要这个功能的就不用加)

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

四、入门案例

4.1、简单的一个网络请求(直接获取请求的结果—>字符串)

MyHttpUtils.build()//构建myhttputils
                .url("http://192.168.2.153:8080/MyHttpUtilsServer/string.action")//请求的url
                .onExecute(new StringCallBack() {
  //开始执行,并有一个回调(异步的哦---->直接可以更新ui)
                    @Override
                    public void onSucceed(String result) {
  //请求成功之后会调用这个方法
                        //成功之后的拿到结果result进行处理
                    }
                    @Override
                    public void onFailed(Throwable throwable) {
  //请求失败的时候会调用这个方法
                        //失败之后的拿到错误结果throwable进行处理
                    }
                });

通过上面的代码就能发起get请求;

下面结合一个案例类演示:用户输入字母,点击转换即可得到对应的大写字母。(小写转大写案例)

接口:http://192.168.2.153:8080/MyHttpUtilsServer/string.action

参数: content

请求方式: get

先看效果:

这里写图片描述

来看怎么实现:

/**
     * 单击转换按钮的事件
     *
     * @param view
     */
    public void onUpperCase(View view) {
        String content = etContent.getText().toString();//拿到用户输入的内容
        MyHttpUtils.build()//构建myhttputils
                .url("http://192.168.2.153:8080/MyHttpUtilsServer/string.action")//请求的url
                .addParam("content",content)
                .onExecute(new StringCallBack() {
  //开始执行,并有一个回调(异步的哦---->直接可以更新ui)
                    @Override
                    public void onSucceed(String result) {
  //请求成功之后会调用这个方法----显示结果
                        tvResult.append("\n");
                        tvResult.append(Html.fromHtml("<font size='30px' color='red'>" + result + "</font>"));
                        tvResult.append("\n");
                    }
                    @Override
                    public void onFailed(Throwable throwable) {
  //请求失败的时候会调用这个方法
                        ToastUtils.showToast(UpperCaseActivity.this, FailedMsgUti
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值