android网络开发学习笔记

android与服务器的通信方式主要有2种:http通信、Socket通信
一、HTTP
1、http通信主要是“请求——响应”方式,即在请求时建立连接通道
2、HTTP通信的API,HttpURLConnection,HttpURLConnection类位于java.net包中,用于发送HTTP请求和获取HTTP响应,由于该类是抽象类,不能直接实例化对象,则需要URL的openConnection()方法来获得
eg:

URL url = new URL("http://www.baidu.com/");
HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();

3、HttpURLConnection是urlConnection 的子类,在urlConnection 其基础上提供以下方法

方法描述
int getResonseCode()获取服务器的响应代码
String getResponseMessage()获取服务器响应消息
String getRequestMethod()获取发送请求的方法
void setRequestMethod()设置发送请求的方法

4、使用HttpURLConnection对象发送请求时,默认发送的是get请求,发送GET请求比较简单,只需要在指定连接地址时,先将要传递的参数通过“?参数名=参数值”进行传递,然后获取流中的数据,并关闭连接即可
(1)永远不要再主线程上执行网络调用
(2)在service而不是Activity中执行网络操作
(3)要解决应用GET方法传递中文参数时产生乱码的问题,也可以使用java提供的URLEncoder类来实现
5、如果要发送POST请求,需要通过setRequestMethod()方法进行指定

HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();
urlConn.setRequestMethod("POST");

6、发送POST请求比较复杂,需要通过HttpURLConnection类及其父类urlConnection 提供的方法设置相关内容

方法描述
setDoInput(boolean newValue)用于设置是否连接中写入数据
setDoOuput(boolean newValue)用于设置是否从连接中读取数据
setUseCaches(boolean newValue)用于设置是否缓存数据
setInstanceFollowRedirects(boolean followRedirects)用于设置是否自动执行http重定向
setRequestProperty(String field,String new Value)用于设置一般请求属性

二、SOCKET
1、Socket通信是在双方建立起连接后就可以直接进行数据的传输,在连接时可以实现信息的主动推送
2、Socket即端口通信,主要特点有数据丢失率低、使用简单且容易移植
3、Socket基本实现原理
(1)基于TCP的Socket
首先声明一个ServerSocket对象并指定端口,然后调用ServerSocket的accept()方法接收客户端的数据,Accept()方法在没有数据进行接收时处于堵塞状态,一旦接收到数据通过inputstream读取接收数据

socket = new Socket("192.168.1.32",1989)
Inputstream inputstream = new FileInputStream("")
Outputstream outputstream = socket.getOutputStream();
outputstream.write();
outputstream.flush();

客户端创建一个Socket对象,指定服务器的IP地址和端口号,通过inputstream读取数据,获取服务器发出的数据,最后将要发送的数据写入到outputstream即可进行TCP的Socket数据传输

(2)基于UDP的数据传输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值