xUtils3 联网模块
xUtils3 联网模块
在做 Android 软件中,联网请求网络是必不可少的功能,xUtils3 封装了多种网络相关功能,
网络请求文本,并且可以使用 Get 或者 Post 请求文本;还支持超过 2G 大文件的下载,最满 意功能是还支持断点续传,什么是断点续传呢,就是下载一半文件后,接着原来下载的部分 接着下载文件,这样不至于重新下载,节约用户流量。 xUtils3 还支持文件上传,上传也支持大于 2G 的文件,另外录制的视频可以使用 xUtils3 上 传视频,用户头像也可以 xUtils3 上传。
1_xUtils3NetActivity 布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><!-标题栏 --><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="50dp"android:background="@android:color/holo_blue_light"android:gravity="center"android:orientation="horizontal"><TextViewandroid:text="xUtils3 网络模块"android:id="@+id/tv_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="@android:color/white"android:textSize="20sp"/></LinearLayout><Buttonandroid:id="@+id/btn_get_post"android:text="get 和 pos 请求"android:layout_width="match_parent"android:layout_height="wrap_content"/><Button android:id="@+id/btn_downloadfile"android:text="大文件下载"android:layout_width="match_parent"android:layout_height="wrap_content"/><Button android:id="@+id/btn_uploadfile"android:text="文件上传"android:layout_width="match_parent"android:layout_height="wrap_content"/><TextView android:id="@+id/tv_result"android:text="显示结果"android:layout_width="match_parent"android:layout_height="wrap_content"/><ProgressBar android:id="@+id/progressBar" style="?android:progressBarStyleHorizontal"android:layout_width="match_parent"android:layout_height="wrap_content"/> </LinearLayout>
1.1 实例化布局
@ContentView(R.layout.activity_net) public class xUtils3NetActivity extends Activity {@ViewInject(R.id.tv_result)private TextView textView;@ViewInject(R.id.progressBar)private ProgressBar progressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);x.view().inject(this);}@Event(value = {R.id.btn_get_post, R.id.btn_downloadfile, R.id.btn_uploadfile})private void getEvent(View view) {switch (view.getId()) {case R.id.btn_get_post:getDataByGet_Post();break;case R.id.btn_downloadfile:downloadfile();break;case R.id.btn_uploadfile:uploadfile();break;}} }
2_使用 xUtils3 的 Get 请求文本
Get 请求,成功后会有回调,本方法是最常用的请求文本方式
private void getDataByGet_Post() {RequestParams request = new RequestParams("http://api.m.mtime.cn/PageSubArea/TrailerList.api");x.http().get(request, new Callback.CommonCallback<String>() {@Overridepublic void onSuccess(String result) {LogUtil.e("onSuccess-result==" + result);Toast.makeText(xUtils3NetActivity.this, "result==" + result, Toast.LENGTH_SHORT).show();textView.setText(result + "");}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {LogUtil.e("onError==" + ex.getMessage());}@Overridepublic void onCancelled(CancelledException cex) {LogUtil.e("onCancelled==" + cex.getMessage());}@Overridepublic void onFinished() {LogUtil.e("onFinished==");}});}
3_使用 xUtils3 的 Post 请求文本
private void getDataByGet_Post() {RequestParams request = new RequestParams("http://api.m.mtime.cn/PageSubArea/TrailerList.api");x.http().post(request, new Callback.CommonCallback<String>() {@Overridepublic void onSuccess(String result) {LogUtil.e("onSuccess-result==" + result);Toast.makeText(xUtils3NetActivity.this, "result==" + result, Toast.LENGTH_SHORT).show();textView.setText(result + "");}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {LogUtil.e("onError==" + ex.getMessage());}@Overridepublic void onCancelled(CancelledException cex) {LogUtil.e("onCancelled==" + cex.getMessage());}@Overridepublic void onFinished() {LogUtil.e("onFinished==");}});}
4_使用 xUtils3 文件下载&断点续传
xUtils3 支持大于 2G 的文件的下载,最惊喜的是还支持断点续传下载。
1_下载文件代码
private void downloadfile() {final RequestParams reqest = new RequestParams("http://vfx.mtime.cn/Video/2016/09/02/mp4/160902093947207009_480. mp4 ");reqest.setAutoRename(false);// 设置是否根据头信息自动命名文件 reqest.setSaveFilePath(Environment.getExternalStorageDirectory() + "/atguigu/oppo.mp4");reqest.setExecutor(new PriorityExecutor(3, true));// 自定义线程池 , 有效 的值范围 [1, 3], 设置为 3 时 , 可能阻塞图片加载 . reqest.setCancelFast(true);// 是否可以被立即停止 . x.http().get(reqest, new Callback.ProgressCallback<File>() {@Overridepublic void onSuccess(File result) {LogUtil.e("onSuccess-下载文件成功" + result.toString());}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {LogUtil.e("onError-下载文件失败" + ex.getMessage());}@Overridepublic void onCancelled(CancelledException cex) {LogUtil.e("onCancelled-");}@Overridepublic void onFinished() {LogUtil.e("onFinished-");}@Overridepublic void onWaiting() {LogUtil.e("onWaiting-");}@Overridepublic void onStarted() {LogUtil.e("onStarted-");}@Overridepublic void onLoading(long total, long current, boolean isDownloading) {progressBar.setMax((int) total);progressBar.setProgress((int) current);LogUtil.e("onLoading-" + current + "/" + total);}});}
2_记得加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
3_设置断点续传
下面红色的地方就是设置支持断点续传的地方
private void downloadfile() {final RequestParams reqest = new RequestParams("http://vfx.mtime.cn/Video/2016/09/02/mp4/160902093947207 009_480.mp4");reqest.setAutoRename(false);// 设置是否根据头信息自动命名文件 reqest.setSaveFilePath(Environment.getExternalStorageDirectory() + "/atguigu/oppo.mp4");reqest.setAutoResume(true);//设置是否在下载是自动断点续传 reqest.setExecutor(new PriorityExecutor(3, true));// 自定义线程池 , 有效 的值范围 [1, 3], 设置为 3 时 , 可能阻塞图片加载 . reqest.setCancelFast(true);// 是否可以被立即停止 . x.http().get(reqest, new Callback.ProgressCallback<File>() {@Overridepublic void onSuccess(File result) {LogUtil.e("onSuccess-下载文件成功" + result.toString());}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {LogUtil.e("onError-下载文件失败" + ex.getMessage());}@Overridepublic void onCancelled(CancelledException cex) {LogUtil.e("onCancelled-");}@Overridepublic void onFinished() {LogUtil.e("onFinished-");}@Overridepublic void onWaiting() {LogUtil.e("onWaiting-");}@Overridepublic void onStarted() {LogUtil.e("onStarted-");}@Overridepublic void onLoading(long total, long current, boolean isDownloading) {progressBar.setMax((int) total);progressBar.setProgress((int) current);LogUtil.e("onLoading-" + current + "/" + total);}});}
5_大文件上传
1_支持文件上传服务器的搭建
使用 tomcat 搭建服务,支持文件上传
2_文件上传
文件上传的时候也设置,上传的进度,也需要重写 ProgressCallback 这个接口
private void uploadfile() {RequestParams params = new RequestParams("http://192.168.11.215:8080/FileUpload/FileUploadServlet");//使用 multipart 表单上传文件 params.setMultipart(true);params.addBodyParameter("file", new File(Environment.getExternalStorageDirectory() + "/atguigu/oppo.mp4"), null, "oppo.mp4");x.http().post(params, new Callback.ProgressCallback<File>() {@Overridepublic void onSuccess(File result) {LogUtil.e("onSuccess-上传文件成功" + result.toString());}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {LogUtil.e("onError-下载文件失败" + ex.getMessage());}@Overridepublic void onCancelled(CancelledException cex) {LogUtil.e("onCancelled-");}@Overridepublic void onFinished() {LogUtil.e("onFinished-");}@Overridepublic void onWaiting() {LogUtil.e("onWaiting-");}@Overridepublic void onStarted() {LogUtil.e("onStarted-");}@Overridepublic void onLoading(long total, long current, boolean isDownloading) {progressBar.setMax((int) total);progressBar.setProgress((int) current);LogUtil.e("onLoading-" + current + "/" + total);}});}
转载于:https://www.cnblogs.com/yanglanwan/p/11305554.html
xUtils3 联网模块相关推荐
- 卓岚联网模块连接三菱FX系列PLC应用实例
原文地址:卓岚联网模块连接三菱FX系列PLC应用实例 本案例使用FX3u-16M以及卓岚产品ZLAN5103,实现GX Works通过虚拟串口监控PLC 一.PLC通讯口 圆头8孔RS422接口,线序 ...
- 中山联禾科技推出欧姆龙PLC联网模块
参考: 中山联禾科技推出欧姆龙PLC联网模块 1.1产品简述 LHNet-CJ 是一款由中山联禾科技自主研发的以太网通讯处理器,是为工业设备信息化而生,可满足使用者对于数据监控,设备的生产管理的需求, ...
- GPRS联网模块:广和通FIBOCOM_G510 支持接入机智云
[GPRS模组]广和通FIBOCOM_G510 支持接入机智云,具体开发流程参考:http://docs.gizwits.com/zh-cn/deviceDev/debug/G510.html G51 ...
- Xutils3 数据库模块的使用方法
1.开源地址 https://github.com/wyouflf/xUtils3/tree/master 2.导入工程 使用Gradle构建时添加一下依赖即可: compile 'org.xutil ...
- 多人联机游戏中联网模块(Socket)的设计和各种问题解决
这是我自己做的一个多人联机游戏中网络部分的总结.全部为自己全新做的,没用开源软件(有一个网络游戏开源软件Raknet).目的是写一个属于自己的可靠网络模块,修改.扩展后在很多地方都能用得着.也想自己从 ...
- Android xUtils3源码解析之图片模块
本文已授权微信公众号<非著名程序员>原创首发,转载请务必注明出处. xUtils3源码解析系列 一. Android xUtils3源码解析之网络模块 二. Android xUtils3 ...
- Android xUtils3源码解析之数据库模块
本文已授权微信公众号<非著名程序员>原创首发,转载请务必注明出处. xUtils3源码解析系列 一. Android xUtils3源码解析之网络模块 二. Android xUtils3 ...
- xutils3的应用
以前项目都是和团队一起做 ,现在来了一个小公司.需要自己独自带队了.自己独自做一个项目,选择框架时,就用到了xutils3.自己结合资料和源码做出的总结 1.先介绍xutils3 xUtils3 是 ...
- Android xUtils3
一.简介 xUtils3 是 xUtils 的升级版,功能和性能都在提高,xUtils3 主要有四大模块:注解模块,联 网模块,图片加载模块,数据库模块. 注解模块: 用于在 Activity 或 ...
- J2ME最佳实践之联网开发-编写反应灵敏的联网提示界面
由于无线设备所能支持的网络协议非常有限,仅限于HTTP,Socket,UDP等几种协议,不同的厂家可能还支持其他网络协议,但是,MIDP 1.0规范规定,HTTP协议是必须实现的协议,而其他协议的实现 ...
最新文章
- 独家 | 使用高斯混合模型,让聚类更好更精确(附数据代码学习资源)
- Css Font 详细研究
- intellij idea 如何一键清除所有断点
- DataWorks功能实践速览 — 参数透传
- mysql group by能用到索引吗_`MySQL GROUP BY使用索引时速度较慢
- delphi 发送网络消息_Actor 消息的可靠交付(Akka Typed)
- 计算给定坐标系和各个定点坐标的凸多边形的面积
- 使用LoadRunner进行性能测试的简单步骤
- 基于EEMD和樽海鞘算法优化SVM的滚动轴承故障诊断python
- KMS服务器安装以及配置
- R语言聚类分析——代码解析
- 程序员小助手 | Emacs,最强编辑器,没有之一
- 痞子衡嵌入式:浅析IAR下调试信息输出机制之硬件UART外设
- QT虚拟键盘中英文切换
- 用c语言验证欧拉定理,欧拉定理_欧拉定理的意义
- (入门、全面、通用)树莓派Raspbian系统安装配置,篇一
- java程序员常用的快捷键
- Sql serever的语句
- 神经网络模型的工作原理,人脑神经网络模型
- 魔兽世界最新服务器人数,魔兽世界过气?全球服务器人口普查带你了解真正的魔兽世界现状...