Android HttpURLConnection
HTTP 协议其实很简单,因为是文本格式,一看就懂,请求头只有两行是必须的,响应头也只有一行是必须的
本章节我们使用 Android
提供的用于处理 HTTP 请求的类 HttpURLConnection
来演示和加深 HTTP
的基本知识
HttpURLConnection
HttpURLConnection
是一种多用途、轻量极的 HTTP 客户端,可以用它来进行大部分的 HTTP
操作,而且会自动处理 gzip
压缩
HttpURLConnection
的 API
比较简单,但是同时这也使得我们可以更加容易地去使
用和扩展它
HttpURLConnection 的使用步骤
-
创建一个URL对象
URL url = new URL("https://www.twle.cn/dy/text/getpost?lang=python");
https://www.twle.cn/dy/text/getpost
是我们开发的一个 echo 服务器,可以把发送的内容使用文本格式打印出来 -
调用 URL 对象的 openConnection() 来获取 HttpURLConnection 对象实例
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
-
设置 HTTP 请求使用的方法
GET
或者POST
,或其它请求方式如:PUT
conn.setRequestMethod("GET");
-
设置连接超时,读取超时的毫秒数,以及服务器希望得到的一些消息头
conn.setConnectTimeout(6*1000); conn.setReadTimeout(6 * 1000);
设置超时 6 秒,也就是客户端会等待 6 秒时间,如果服务器还没返回,则返回超时
-
对服务器端返回的状态码进行判断,比如是否正常返回(200)
if(conn.getResponseCode() != 200)
-
如果正常返回,可以调用
getInputStream()
方法获得服务器返回的输入流,然后输入流进行读取InputStream in = conn.getInputStream();
-
最后调用 disconnect() 方法将 HTTP 连接关掉
conn.disconnect();