HttpURLConnection 简介
Java 中提供了多种实现 HTTP 客户端的方式,其中最常用的是 HttpURLConnection。它是一个子类,可以通过 URL.openConnection() 方法创建。使用 HttpURLConnection 可以发送 HTTP 请求并接收 HTTP 响应,对于大多数网络应用程序来说是一个比较好的选择。HttpURLConnection 使用方法
使用 HttpURLConnection 基本步骤如下: 1. 创建一个 URL 对象。 2. 调用 URL.openConnection() 方法获取一个连接对象。 3. 对连接对象进行一些必要的设置。 4. 调用 connect() 方法建立连接。 5. 如果需要发送请求体,调用 getOutputStream() 方法获取输出流,把数据写入到流中。 6. 接收响应头信息,可以通过 HttpURLConnection 类的方法获取(例如响应码、响应头、域等)。 7. 接收响应体信息,这部分响应信息包含在由 getInputStream() 方法返回的输入流中,可以调用 BufferedReader.readLine() 方法读取输入流信息,也可以通过设置响应头信息的 Content-Length 属性去知道响应体的总大小。HttpURLConnection 的限制和注意事项
不幸的是,在实际的应用场景中,HttpURLConnection 发现是有很多限制和注意事项的。其中一些问题有: 1. HttpURLConnection 不支持 HTTP/2 标准(Java11 后开始支持 HTTP/2)。 2. HttpURLConnection 有可能将请求方法从 POST 转换为 GET,这是因为某些服务器无法理解 POST 请求体。 3. HttpURLConnection 支持 HTTP Keep-Alive(HTTP keep-alive 是一项 HTTP/1.1 特性,允许客户端和服务器之间保持 TCP 连接存活的时间,这样可以减少服务器处理大量小型请求时的资源浪费)但并不完美。 总的来说,虽然 HttpURLConnection 在 java.net 包中是比较重要的一个类,但显然没有在某些用例中可以使用的其他类库全面、灵活。因此,对于在 Android 开发中的网络客户端实现来说, 建议使用相关的 OkHttp 或 Volley 等网络框架更好。注:本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即后台留言通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意