Xutils框架-HTTP使用详解

最近在项目中用到了Xutils框架,顺便研究了一下,希望跟大家一起共同进步。
一些基本的介绍我也不多说了,想必大家都能通过网络找到。在这里附上github的下载地址:https://github.com/wyouflf/xUtils。感谢各位技术人员对开源代码的贡献。
这里讲解一下Xutils框架里面的HTTP模块。使用HTTP模块,方便对HTTP接口的调用以及封装。

基本使用步骤:
1.下载Xutils jar包,放到项目的lib文件夹内
2.新建HttpFactory.java,一般使用单例模式,来提供HttpUtils实例,也可做一些配置,比如connTimeout(连接超时),configRequestRetryCount(重连次数)等。一般默认设置已经够用了。
需要访问HTTPS接口的需要设置configSSLSocketFactory(可以跳过,SSLTrustAllSocketFactory文件附在文章最后)

SSLSocketFactory socketFactory = SSLTrustAllSocketFactory
                .getSocketFactory();
        socketFactory
    .setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

3.接入项目调用接口,HttpFactory.getInstance().send(),可以选择HttpMethod.GET,HttpMethod.POST等方式。还需配置url(接口地址),params(传递参数),RequestCallBack<>(回调接口)。接口返回数据会在onSuccess()中反馈,在responseInfo.result中得到返回数据,一般以String格式返回(用json比较合适,对于json的解析一般可以使用Google的 Gson和FastJson)。

注意问题:
1.调用接口可以返回HttpHandler<>,可以使用cancel()方法来停止调用。
2.多图片上传可以在RequestParams中循环调用addBodyParameter(key, File),来添加。但是这个方法不能保证服务器收到的图片顺序就是你添加的顺序。如果需要保证上传顺序,就要用到MultipartEntity,循环addPart(key, filebody),之后再使用setBodyEntity添加进RequestParams。如下:

RequestParams params = new RequestParams();
            String[] fileNames = null;
            MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.STRICT, 
                    null, Charset.forName(HTTP.UTF_8));
            String key = "";
            if (!TextUtils.isEmpty(fileNameStr)) {
                fileNames = fileNameStr.split(",");
                for (int i = 0; i < fileNames.length; i++) {
                    file = new File(fileNames[i]);
                    if (file.exists()) {
                        key = "" + (i+1);
                        multipartEntity.addPart(key, new FileBody(file));
                    }
                }

            }
            HttpEntity entity = multipartEntity;
            params.setBodyEntity(entity);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值