
4.4 如何高效的上传数据
“上传”的反义词是“下载”,上传就是将信息从个人计算机(本地计算机)传递到中央计算机(远程计算机)系统上,让网络上的人都能看到。将制作好的网页、文字、图片等发布到互联网上去,以便让其他人浏览、欣赏。这一过程称为上传。在本节的内容中,将详细讲解在Android穿戴设备中上传数据的基本知识。
4.4.1 将穿戴设备中的文件上传到远程服务器
在使用穿戴设备时,可以使用拍照装置进行拍照。为了节省设备的容量,可以将照片上传到远程服务器。例如在下面的实例中,演示了在Android穿戴设备中将文件上传到远程服务器的方法。

编写主程序文件chuan.java,其具体实现流程如下所示。
● 分别声明变量newName、uploadFile和actionUrl,具体代码如下所示。

● 通过mText1对象获取文件路径,根据mText2设置上传网址,单击按钮后调用上传方法uploadFile()。具体代码如下所示。


● 定义方法uploadFile()将文件上传至Server,具体代码如下所示。


● 定义方法showDialog(String mess)来显示提示对话框,具体代码如下所示。

执行后单击“上传”按钮可以将指定的文件上传到服务器,如图4-8所示。
4.4.2 使用GET方式上传数据
在Andorid系统中可以通过GET方式或POST方式上传数据,两者的具体区别如下所示。
● GET上传的数据一般是很小的并且安全性能不高的数据。
● POST上传的数据适用于数据量大,数据类型复杂,数据安全性能要求高的地方。

图4-8 上传到服务器
在Android穿戴设备开发应用中,采用GET方式向服务器传递数据的基本步骤如下所示。
(1)利用Map集合对数据进行获取并进行数据处理,例如:

(2)新建一个StringBuilder对象。例如:

(3)新建一个HttpURLConnection的URL对象,打开连接并传递服务器的path。例如:

(4)设置超时和连接的方式。例如:

在接下来的内容中将通过一个具体实例的实现过程介绍在Android穿戴设备中采用GET方式向服务器传递数据的基本方法。

本实例的具体实现流程如下所示。
(1)打开Eclipse,新建一个名为“ServerForGETMethod”的Web工程,并自动生成配置文件web.xml。
(2)创建一个名为ServletForGETMethod的Servlet,功能是接收并处理通过GET方式上传的数据。实现文件ServletForGETMethod.java的具体代码如下所示。

在上述代码中,为了避免出现中文乱码的问题,特意实现了ISO8854-1和UTF-8转换处理。请读者再看看下面的代码,很好的解决了乱码的问题。

由此可见,在使用get方式传递数据时,需要使用如下所示的代码声明当前页的字符集。

(3)在配置文件web.xml中配置ServletForGETMethod,具体实现代码如下所示。

(4)打开Eclipse,新建一个名为“UserInformation”的Android工程。然后编写界面布局文件main.xml。
(5)编写业务类的实现文件UserInformationService.java,主要实现代码如下所示。


(6)编写配置文件AndroidManifest.xml,申明网络访问权限,主要代码如下所示。

到此为止,整个实例已讲解完毕,执行后的效果如图4-9所示。输入用户名和年龄后单击“save”按钮,会将输入的数据上传至服务器。

图4-9 执行效果