Android 网络请求之Xutils环境搭建

本文介绍了如何在Android开发中搭建和使用Xutils网络请求框架,提供了详细的配置和代码示例,包括在build.gradle中添加依赖、在Presenter中使用、图片压缩上传以及JSON数据的POST请求方式。
摘要由CSDN通过智能技术生成

Xutils 在Android 开发中是一个比较老的网络请求框架,目前在市面上,仍然有一些老的项目在使用和维护.

本文给需要使用Xutils网络请求框架的朋友,提供一个快速搭建的代码参考:

app的module build,gradle中

添加:

compile 'org.xutils:xutils:3.4.0'
ParamsUtil.java
public class ParamsUtil {

    private static final String TAG = "ParamsUtil";
    public static ParamsUtil instances;

    public static ParamsUtil getInstances() {
        if (instances == null) {
            instances = new ParamsUtil();
        }
        return instances;
    }

    //绑定参数
    private RequestParams builderParams(Map<String, String> map) {
        RequestParams params = new RequestParams();
        Iterator<String> key = map.keySet().iterator();
        while (key.hasNext()) {
            String key_s = key.next();
            params.addQueryStringParameter(key_s, map.get(key_s));
        }

        
        return params;
    }

    private RequestParams builderBodyParams(Map<String, String> map) {
        RequestParams params = new RequestParams();
        Iterator<String> key = map.keySet().iterator();
        while (key.hasNext()) {
            String key_s = key.next();
            params.addBodyParameter(key_s, map.get(key_s));
        }
        return params;
    }

    public RequestParams appLogin1(String xxx, String yyy) {
        Map<String, String> params = new HashMap<>();
        params.put("xxx", xxx);
        params.put("yyy", yyy);
  
        return builderParams(params);
    }
}
HttpRequest.java
public class HttpRequest {

    public static HttpRequest instances;

    public static HttpRequest getInstances() {
        if (instances == null) {
            instances = new HttpRequest();
        }
        return instances;
    }

    //Get请求
    public void xGet(final Context context, RequestParams param, final String url, final Type cL, final RequestResultCallBack callback) {
        if (NetUtil.isNetConnected(context)) {
            param.setUri(url);
            Logger.i("uploadUrl", String.valueOf(param));
            param.setConnectTimeout(45 * 1000);//45秒缓存
            final long start_time = System.currentTimeMillis();
            x.http().get(param, new Callback.CommonCallback<String>() {
                @Override
                public void onSuccess(String result) {
                    Log.i("服务器成功时响应时间 = >", String.valueOf(System.currentTimeMillis() - start_time));
                    // Logger.json("succ", result);
                    Logger.e("succ", result);
                    NewBaseBean entity = JSON.parseObject(result, cL);
                    if (entity.getCode() == 200) {
                        callback.onSucess(entity);
                    } else {
                        callback.onFailure(-1, entity.getMessage());
                    }
                }

                @Override
                public void onError(Throwable ex, boolean isOnCallback) {
                    callback.onFailure(32000, "您的网络不太理想,请稍后重试吧~");//超时
                    Logger.i("error", Constant.appendStr(ex.getMessage(),""));
                }

                @Override
                public void onCancelled(CancelledException cex) {
                    Logger.i("服务器请求取消 = >", Constant.appendStr(cex.getMessage(),""));
                }

                @Override
                public void onFinished() {
                    Logger.i("服务器请求完成 = >", "");
                }
            });
        } else {
            if (callback != null) {
                callback.onFailure(-2, "请检查网络是否正常");
            }
        }
    }

    //Post请求
    public void xPost(final Context context, final RequestParams param, final String url, final Type cL, final RequestResultCallBack callback) {
        if (NetUtil.isNetConnected(context)) {
            param.setUri(url);
            Logger.i("uploadUrl",  String.valueOf(param));
            param.setConnectTimeout(45 * 1000);//45秒缓存
            final long start_time = System.currentTimeMillis();
            x.http().post(param, new Callback.CommonCallback<String>() {
                @Override
                public void onSu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值