Android通过WebService实现图片的上传和下载(一)

这篇文章将讲解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,Java)