android学习笔记7 - 连接服务器操作和数据处理(get+service)
来源:互联网 发布:足彩n串1算法 编辑:程序博客网 时间:2024/06/06 10:51
android连接服务器的操作可以使get和post,这里试着使用一下get的方式(post使用Httppost),同时在主活动中调用service的方式进行异步连接服务器(也可以使用thread方法)。
1.建立url对象
2.建立HttpURLConnect对象
3.设置get方法
4.保存通过 connect获得的InputStream数据流
public static String httpget(String urlstring) throws IOException{URL url=new URL(urlstring);HttpURLConnection connect=(HttpURLConnection) url.openConnection();connect.setRequestMethod("GET");InputStream instream=connect.getInputStream();byte[] data=readstream(instream); String result=new String(data,"GBK"); return result;}
数据处理:读取InputStream流中的数据返回byte数组
1.建立ByteArrayOutputStream对象,用于读出数据
2.建立一个byte数组类型的buffer用于缓冲数据(暂时保存InputStream中的数据)
3.通过while进行循环次数,标志len,调用InputStream中的read方法,如果没有要读取的数据返回-1,否者读取一个字节的数据到buffer中。
4.调用OutputStream的write方法将从buffer中的从偏移量(自动加 1)开始的len(当前读取到的位置)个字节读取到输出流中(实际为1个字节)
5.将输出流的内容调用toByteArray()方法,储存到byte数组中。 6.关闭输入输出流。
public static byte[] readstream(InputStream instream) throws IOException{ByteArrayOutputStream outstream=new ByteArrayOutputStream();byte[] buffer=new byte[1024];int len=-1;while((len=instream.read())!=-1){outstream.write(buffer,0,len);}byte[] bytedata=outstream.toByteArray();instream.close();outstream.close();return bytedata;}
1.重写onstart方法。
2.在主活动中定义一个静态的handle来接受数据,在service中使用message的形式向handle中添加数据。meeage调用setdata,将从服务器获取的数据通过bundle形式打包,handle调用sendmessage方法。
3.主活动写一个对应的解析方法来解析service中传递的数据。
4.新建一个intent,开始连接服务。
Intent intent=new intent(this,servie.class)startService(intent);
1.使用网络连接,需要在Androidmanifest.xml中注册,同时service也需要注册
2.service和thread的区别,service是依附在主进程之上的是本地服务,独立进程的是远程服务。一个service比起thread更容易控制,在主活动finish之后,thread便不受控制。如果你的thread需要隔一段时间就链接服务器进行同步的话,在activity中启动一个service中定义一个thread可以完美解决问题。有context的地方就能控制service,所以可以多个activity控制同一个service。
3.bundle是android专属的数据传递方法,使用方式json很像,有getstring和putstring的键值对方式。
- android学习笔记7 - 连接服务器操作和数据处理(get+service)
- Android学习笔记7---Service
- Android学习笔记(7)-关于Service和Notification的体验
- 【一步一个脚印】Tomcat+MySQL为自己的APP打造服务器(3-1)Android 和 Service 的交互之GET方式
- Tomcat+MySQL为自己的APP打造服务器(3-1)Android 和 Service 的交互之GET方式
- 【Android学习笔记】Service学习(1)
- Android Service学习笔记
- Android Service学习笔记
- Android Service学习笔记
- android service 学习笔记
- Android学习笔记 - Service
- Android学习笔记-Service
- android Service学习笔记
- Android Service学习笔记
- Android学习笔记(四):Service简介
- Android学习笔记(九):Service总结
- [Android学习笔记] Service 学习
- Android 学习笔记 Service (一) Local Service
- hud5437-Alisha’s Party-优先队列
- linux-odbc
- 今天是快乐的程序员节
- MVC Kendo总结之-----> ComboBox
- libcurl的使用--如何复用连接
- android学习笔记7 - 连接服务器操作和数据处理(get+service)
- 10大Go语言开源项目推荐
- 尺寸单位
- 【OSX】clover 安装到硬盘efi分区
- hdu 3943 K-th Nya Number 2011多校11 数位dp
- server runtime setting
- 某公司北京研发中心“产品经理”内训圆满结束!
- 解决Win8下IE10无法打开的故障
- JavaScript 库