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的数据传输

猜你喜欢

转载自blog.csdn.net/weixin_37411471/article/details/88648614
今日推荐