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 联网模块相关推荐

  1. 卓岚联网模块连接三菱FX系列PLC应用实例

    原文地址:卓岚联网模块连接三菱FX系列PLC应用实例 本案例使用FX3u-16M以及卓岚产品ZLAN5103,实现GX Works通过虚拟串口监控PLC 一.PLC通讯口 圆头8孔RS422接口,线序 ...

  2. 中山联禾科技推出欧姆龙PLC联网模块

    参考: 中山联禾科技推出欧姆龙PLC联网模块 1.1产品简述 LHNet-CJ 是一款由中山联禾科技自主研发的以太网通讯处理器,是为工业设备信息化而生,可满足使用者对于数据监控,设备的生产管理的需求, ...

  3. GPRS联网模块:广和通FIBOCOM_G510 支持接入机智云

    [GPRS模组]广和通FIBOCOM_G510 支持接入机智云,具体开发流程参考:http://docs.gizwits.com/zh-cn/deviceDev/debug/G510.html G51 ...

  4. Xutils3 数据库模块的使用方法

    1.开源地址 https://github.com/wyouflf/xUtils3/tree/master 2.导入工程 使用Gradle构建时添加一下依赖即可: compile 'org.xutil ...

  5. 多人联机游戏中联网模块(Socket)的设计和各种问题解决

    这是我自己做的一个多人联机游戏中网络部分的总结.全部为自己全新做的,没用开源软件(有一个网络游戏开源软件Raknet).目的是写一个属于自己的可靠网络模块,修改.扩展后在很多地方都能用得着.也想自己从 ...

  6. Android xUtils3源码解析之图片模块

    本文已授权微信公众号<非著名程序员>原创首发,转载请务必注明出处. xUtils3源码解析系列 一. Android xUtils3源码解析之网络模块 二. Android xUtils3 ...

  7. Android xUtils3源码解析之数据库模块

    本文已授权微信公众号<非著名程序员>原创首发,转载请务必注明出处. xUtils3源码解析系列 一. Android xUtils3源码解析之网络模块 二. Android xUtils3 ...

  8. xutils3的应用

    以前项目都是和团队一起做 ,现在来了一个小公司.需要自己独自带队了.自己独自做一个项目,选择框架时,就用到了xutils3.自己结合资料和源码做出的总结 1.先介绍xutils3 xUtils3 是 ...

  9. Android xUtils3

    一.简介 xUtils3 是 xUtils 的升级版,功能和性能都在提高,xUtils3 主要有四大模块:注解模块,联 网模块,图片加载模块,数据库模块.   注解模块: 用于在 Activity 或 ...

  10. J2ME最佳实践之联网开发-编写反应灵敏的联网提示界面

    由于无线设备所能支持的网络协议非常有限,仅限于HTTP,Socket,UDP等几种协议,不同的厂家可能还支持其他网络协议,但是,MIDP 1.0规范规定,HTTP协议是必须实现的协议,而其他协议的实现 ...

最新文章

  1. 独家 | 使用高斯混合模型,让聚类更好更精确(附数据代码学习资源)
  2. Css Font 详细研究
  3. intellij idea 如何一键清除所有断点
  4. DataWorks功能实践速览 — 参数透传
  5. mysql group by能用到索引吗_`MySQL GROUP BY使用索引时速度较慢
  6. delphi 发送网络消息_Actor 消息的可靠交付(Akka Typed)
  7. 计算给定坐标系和各个定点坐标的凸多边形的面积
  8. 使用LoadRunner进行性能测试的简单步骤
  9. 基于EEMD和樽海鞘算法优化SVM的滚动轴承故障诊断python
  10. KMS服务器安装以及配置
  11. R语言聚类分析——代码解析
  12. 程序员小助手 | Emacs,最强编辑器,没有之一
  13. 痞子衡嵌入式:浅析IAR下调试信息输出机制之硬件UART外设
  14. QT虚拟键盘中英文切换
  15. 用c语言验证欧拉定理,欧拉定理_欧拉定理的意义
  16. (入门、全面、通用)树莓派Raspbian系统安装配置,篇一
  17. java程序员常用的快捷键
  18. Sql serever的语句
  19. 神经网络模型的工作原理,人脑神经网络模型
  20. 魔兽世界最新服务器人数,魔兽世界过气?全球服务器人口普查带你了解真正的魔兽世界现状...

热门文章

  1. Atitit 衡量项目的规模
  2. 多线程编程之二——MFC中的多线程开发(收藏)
  3. C#实现HTTP下载文件的方法
  4. 已解决:TeamViewer使用的设备数量上限
  5. 主从reactor模式
  6. Spring之IOC容器
  7. ###Tomcat目录介绍和基础
  8. idc机房建设费用_2018年全球数据中心建设成本解读
  9. python语言中有三种表示字符串的方式_python经典实例
  10. pandas学习之透视表