技术公众号:Java In Mind(Java_In_Mind),欢迎关注!
HttpURLConnection介绍
支持 HTTP 特定功能的 URLConnection。有关详细信息,请参阅 the spec 。
每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络。请求后在 HttpURLConnection 的 InputStream 或 OutputStream 上调用 close() 方法可以释放与此实例关联的网络资源,但对共享的持久连接没有任何影响。如果在调用 disconnect() 时持久连接空闲,则可能关闭基础套接字。
简单来说,HttpURLConnection就是Java提供的发起HTTP请求的基础类库,提供了HTTP请求的基本能力,不过封装比较少,使用时都要自己设置,也需要自己处理请求流和响应流,虽然实际使用比较少,但也可以作为学习研究研究,下面来简单使用一下:
模拟服务
@RestController
发起POST请求
HttpURLConnection
发起GET请求
HttpURLConnection
错误处理
HttpURLConnection
重定向处理
HttpURLConnection
核心API
- 发送请求体需要:setDoOutput(true)
- 设置请求头:setRequestProperty
- 获取请求头:getHeaderField
- 设置超时
- 连接超时:setConnectTimeout
- 读取超时:setReadTimeout
- 获取状态码:getResponseCode
- 异常流:getErrorStream
总结
这里简单使用了HttpURLConnection作为Http客户端的实现,实现步骤比较繁琐,可读性也不是很友好,不过使用Java原生的类库,无侵入性,无其他依赖。