这篇文章将讲解Android如果通过访问WebService接口实现图片的上传和下载,当然这不但需要大家懂得Android还要懂得WebService技术,安卓属于客户端,而webservice则属于服务端,所以就要求大家既要会开发APP又要会写服务器,这篇文章所用的WebService是通过Xfire实现的,不懂的同学可以了解一下javaWeb技术和Xfire。当然这篇文章主要是针对既要开发客户端又要开发服务端的童鞋的,所以javaWeb相关技术就不必多讲了,不是文章重点。首先,我们先来看图片下载的实现,这个相信做过安卓的都知道怎么实现,如果觉得自己已经闭着眼睛就知道代码怎么写的童鞋可以跳过此篇文章了,先看一下从网络获取图片工具类:

/**
 * @author baiyuliang
 */
public class ImageService {

	// 获取网络图片的数据
	public static byte[] getImg(String picpath) throws Exception {
		URL url = new URL(picpath);
		// 基于http协议的连接对象
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
		conn.setConnectTimeout(30000);// 30秒;
		conn.setReadTimeout(30000); // 30秒;
		conn.setInstanceFollowRedirects(true);
		conn.setRequestMethod("GET");// 获取方法:get

		if (conn.getResponseCode() == 200) {// 当返回代码为200时表示获取数据成功
			InputStream is = conn.getInputStream();
			ByteArrayOutputStream os = new ByteArrayOutputStream();
			byte[] buffer = new byte[1024];
			int length = 0;
			while ((length = is.read(buffer)) > -1) {
				os.write(buffer, 0, length);
			}
			os.close();
			return os.toByteArray();
		}

		return null;
	}

}

这个方法里,只需要传入图片的路径,就可以得到最终转换后的图片的字节数组,然后通过BitmapFactory.decodeByteArray图片工厂将字节数组转换成位图既可以显示出来了,而图片的路径,我们不管从哪里获得,只要有正确的路径,就能得到图片,或许大家会有疑问,这个webservice扯上什么关系,呵呵,因为若我们用webservice做服务端,那么图片的路径就肯定是通过webservice传过来的,客户端发送请求后,服务端相应请求,一般的做法就是将要返回的数据转换我IJSON格式返回给手机客户端,客户端接收数据后再解析JSON字符串,而图片路径获取就包含在这个字符串中,而如何解析,大家应该很熟悉了吧。那么手机客户端如何与webservice进行通信,如何发送数据,又如何接收数据,我将在下一篇文章中继续讲解。

Android通过WebService实现图片的上传和下载(一)的更多相关文章

  1. PHP使用七牛云存储之图片的上传、下载、303重定向教程,CI框架实例

    网上关于七牛云存储的教程除了官网上的API文档,其他的资料太少了.研究了下API之后,现在已经能实现图片的上传和下载及上传之后的重定向. http://blog.csdn.net/cqcre/arti ...

  2. 微信js-sdk,选择图片,上传,下载到本地,php服务端

    //前端js代码<script> //客户端6.0.2 wx.config({ //debug:true, appId: "{pigcms:$signPackage.appId} ...

  3. php中图片文件的导入,上传与下载

    ---------------------------------------------图片的导入-------------------------------------------------- ...

  4. SpringMVC使用ResponseEntity实现文件下载,及图片base64的字节数组上传于下载

    本文主要通过ResponseEntity<byte[]>实现文件下 该类实现响应头.文件数据(以字节存储).状态封装在一起交给浏览器处理以实现浏览器的文件下载. ResponseEntit ...

  5. 文件的上传和下载--SpringMVC

    文件的上传和下载是项目开发中最常用的功能,例如图片的上传和下载.邮件附件的上传和下载等. 接下来,将对Spring MVC环境中文件的上传和下载进行详细的讲解. 一.文件上传 多数文件上传都是通过表单 ...

  6. android中的文件(图片)上传

    android中的文件(图片)上传其实没什么复杂的,主要是对 multipart/form-data 协议要有所了解. 关于 multipart/form-data 协议,在 RFC文档中有详细的描述 ...

  7. android+nutz后台如何上传和下载图片

    android+nutz后台如何上传和下载图片  发布于 588天前  作者 yummy222  428 次浏览  复制  上一个帖子  下一个帖子  标签: 无 最近在做一个基于android的ap ...

  8. WebService支持多平台上传文件的实现

    WebService支持多平台上传文件的实现   要使用网站上传文件,在ASP.NET的范畴,我基本上能想到的有两类,一类是通过HTTP POST请求获得文件信息,另外一类是通过WebService或 ...

  9. 三款不错的图片压缩上传插件(webuploader+localResizeIMG4+LUploader)

    涉及到网页图片的交互,少不了图片的压缩上传,相关的插件有很多,相信大家都有用过,这里我就推荐三款,至于好处就仁者见仁喽: 1.名气最高的WebUploader,由Baidu FEX 团队开发,以H5为 ...

随机推荐

  1. JavaScript高级程序设计(第3版)

    准备开始分享阅读笔记 自己收获的同时 让更多的人收益 这也是我力荐的学习javascript基础的书籍

  2. C# 获取字符串中的英文字母

    string str20 = "ABC123"; string strSplit1,strSplit2; //取出字符串中所有的英文字母 strSplit1 = Regex.Rep ...

  3. “百度杯”CTF比赛 九月场_YeserCMS

    题目在i春秋ctf大本营 题目的提示并没有什么卵用,打开链接发现其实是easycms,百度可以查到许多通用漏洞 这里我利用的是无限报错注入 访问url/celive/live/header.php,直 ...

  4. APIO dispatching

    题目描述 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿.在这个帮派里,有一名忍者被称之为 Master.除了 Master以外,每名忍者都有且仅有一个上级.为保密,同时增 ...

  5. poj 3525 凸多边形多大内切圆

    Most Distant Point from the Sea Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 4758   ...

  6. Linux设备树语法详解【转】

    转自:http://www.cnblogs.com/xiaojiang1025/p/6131381.html 概念 Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离.在设备 ...

  7. win7+Apache 设置域名指向本地文件夹

    实现:浏览器地址栏输入 www.bnzoo.com 访问 D:/www 系统:win7旗舰版+Apache 步骤: 1.打开文件 C:\Windows\System32\drivers\etc\hos ...

  8. MySQL插件实现浅析——插件的调用

    一. MySQL中的动态插件 最初想到这个问题是在学习mysql半同步复制相关问题的时候,为何在mysql运行时install半同步插件并开启后就能起到作用,他是如何让事务停下来等待的.安装插件的时候 ...

  9. Python之作业购物车

    作业之购物车优化 购物车优化要求如下: 用户入口: 启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就 ...

  10. Linux 定时执行任务:Crontab服务及应用集锦

    系统背景:cenos6.5 操作工具:Xshell5 情况一:正常情况(系统有service命令) 重启服务命令:[root@centos6 /]# service crond restart 启动服 ...