这篇文章将讲解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. APP开发外包时常见的错误

    时代在发展,科技在进步,很多企业都想要开发出属于自己的一款APP.然而,不是每个企业都有开发团队或是专门雇一个技术人员来做的,有一个好方法就是把开发APP的工作外包出去,找一个比较好的外包公司根据自己 ...

  2. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 在脚本中使用MonoBehaviour

    继上次分析了热更新的Demo后,这次来介绍如何在热更新代码中使用MonoBehaviour. MonoBehaviour挂载到GameObject对象上的脚本的基类.平常Unity开发时,简单的做法就 ...

  3. volatile 到i++ 原子操作 详解

    1.可见性(Visibility) 可见性是指,当一个线程修改了某一个全局共享变量的数值,其他线程是否能够知道这个修改. 显然,在串行程序来说可见性的问题是不存在的.因为你在任何一个地方操作修改了某个 ...

  4. Markdown 编辑器使用指南

    Markdown 编辑器使用指南 1.快捷键 加粗: Ctrl/Cmd + B 标题: Ctrl/Cmd + H 插入链接: Ctrl/Cmd + K 插入代码: Ctrl/Cmd + Shift + ...

  5. 前端监控系统(二)JS错误日志收集篇

    前端监控系统 目前已经上线,欢迎使用! 服务器搭建好了,可以着手开发了. 其实前端需要分析的数据有很多,包括,PVUV, 接口请求统计,耗时统计,JS错误统计,用户使用设备统计,用户地域分布,页面用户 ...

  6. [Codeforces 863E]Turn Off The TV

    Description Luba needs your help again! Luba has n TV sets. She knows that i-th TV set will be worki ...

  7. [HNOI 2013]比赛

    Description 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛.此次联 赛共N支球队参加,比赛规则如下: (1) 每两支球队之间踢一场比赛. (2) 若平局,两支球队各得 ...

  8. HDU - 3037:Saving Beans

    #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> #in ...

  9. Ubuntu下的第一个博客

    (Blogilo还是可以的,只是不能加代码,不能选随笔分类,用不起摘要,字号的选择诡异...)

  10. hdu 1130 How Many Trees?(Catalan数)

    How Many Trees? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...