Android基础知识(二十三):网络请求与HttpURLConnection的基本用法
一、Android网络请求
在过去,Android上发送HTTP请求一般有两种方式:HttpURLConnection以及HttpClient。不过由于HttpClient存在API数量过多、扩展困难等缺点,在Android 6.0系统中,HttpClient功能被完全移除。
二、HttpURLConnection的基本用法
- 获取HttpURLConnection实例
创建一个URL对象,并传入目标的网络地址,然后调用openConnection()方法获取HttpURLConnection对象实例。
- 设置请求方法
得到HttpURLConnection对象实例后,设置HTTP请求所使用的方法,常用的方法主要有两个:GET和POST。GET表示希望从服务器获取数据,POST表示希望提交数据给服务器。
- 设置请求头
设置请求的请求头,例如设置连接超时、读取超时的毫秒数以及服务器希望得到的头信息等。
- 获取输入流并读取
使用getInputStream()方法获取到服务器返回的输入流,并对输入流进行读取。
- 关闭Http连接
当网络请求结束之后,调用disconnect()方法关闭HTTP连接。
- 使用POST提交数据
对于想要使用POST方式提交数据给服务器的,使用setRequestMethod()方法设置请求方法为POST,并在获取输入流之前调用getOutputStream()方法获取输出流,通过输出流将POST的数据提交。
需要注意的是每条数据都要以键值对的形式存在,数据与数据之间用“&”符号隔开。
另外,当使用网络请求时,由于在主线程中使用网络请求会造成主线程阻塞,因此一般都是在子线程中进行网络请求。
三、HttpsURLConnection
相比于HttpURLConnection,HttpsURLConnection的不同之处在于其作用于HTTPS协议,而HttpURLConnection作用于HTTP协议。
在用法上没有较大的区别。
参考资料:《第一行代码 Android 第2版》