Android之通信小议
来源:互联网 发布:剑三高冷炮哥捏脸数据 编辑:程序博客网 时间:2024/06/06 16:53
一、总
Android通信一般有两大类:Socket和Http
Socket又分为两类:TCP和UDP
Http也有两类:Get和Post
二、分
1、Socket之TCP
Tcp是一种面向连接的,可靠的,基于IP协议的传输层协议,全名“传输控制协议”。
客户端:Socket
服务端:ServerSocket
数据传输:getInputStream()/getOutputStream
读写:BufferedReader/PrintWriter
2、Socket之UDP
Udp是一种无连接的,不可靠的,基于IP协议的传输层协议,全名“用户数据报协议”。
客户端:DatagramSocket
服务端:DatagramSocket
数据传输:DatagramPacket
3、Http之Get
http是一种无状态的基于请求响应的应用程协议,有http1.0和http1.1之分,不同之处请自行查阅。
Get方法优点:操作简单
Get方法缺点:安全性低,提交数据量少
适用于查询,删除
android客户端代码:
String url = "http://www.abc.com/login.jsp?name=z&pass=z";
HttpGet get = new HttpGet(url);
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(get);
if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
String result = EntityUtils.toString(response.getEntity(), "UTF-8");
}else {
}
4、Http之Post
Post方法优点:安全性相对较高,提交数据量大
Post方法缺点:操作繁琐
适用于增加,修改
android客户端代码:
String url = "http://www.abc.com/login.jsp";
HttpPost post = new HttpPost(url);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BaaicNameValuePair("name", "z"));
params.add(new BaaicNameValuePair("pass", "z"));
HttpEntity entity = new UrlEncodedFormEntity(params, HTTP.UTF_8);
post.setEntity(entity);
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(post);
if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
String result = EntityUtils.toSring(response.getEntity(), "UTF-8");
}else {
}
三、总
以上是这四种通信的基本用法,具体可以查阅Android Doc帮助文档。其中http的Post和Get实现方法除了本文用到的apache的HttpClient以外,还可以选用java的HttpURLConnection来实现。我没有把代码粘上去,因为我认为,重要的不是代码,而是你的思想和方法,只要你知道有这几种方式,你就可以通过各种途径去实现它,首选帮助文档,如果时间紧迫,你可以google或baidu现成的代码去用。如果有心,里面用到了一些类你可以私下去了解,包括:Socket/ServerSocket/Url/DatagramSockt/DatagramPakcet/BufferedReader/PrintWriter/HttpGet/HttpPost/HttpClient/HttpResponse/NameValuePair/HttpEntity/HttpURLConnection
每天进步1%,一年你会进步多少呢?
- Android之通信小议
- JavaScript之window小议
- Android通信之 Bluetooth
- Android之socket通信
- Android 之 Socket通信
- Android之Socket通信
- Android 之 Socket通信
- Android之网络通信
- Android 之socket通信
- android之socket通信
- Android之Fragment通信
- Android之网络通信
- android之binder通信
- android之OkHttpClient通信
- Android之Socket通信
- Android之页面通信
- Android之Socket通信
- 小议部署方法之二
- PAT 1004. 成绩排名
- 多个动态库代码构建-项目经验积累
- java中URL下载资源
- Foxmail设置Gmail提示“用户名或密码不正确”解决办法
- mac 升级php
- Android之通信小议
- 基于openfire+smack的Android、Web、PC开发(一)
- 笔记-IOS 文件管理
- Linux进程管理(第二版) --计划任务
- hdu 4208 - The time of a day
- java输入输出流
- 冒泡排序和优化
- Linux中断(interrupt)子系统之一:中断系统基本原理
- 使用RINGCACHE提高CASSANDRA读写效率