Http客户端工具类-HttpUtil
使用
针对最为常用的GET和POST请求,HttpUtil封装了两个方法,
GET请求栗子:
因为Hutool-http机制问题,请求页面返回结果是一次性解析为byte[]的,如果请求URL返回结果太大(比如文件下载),那内存会爆掉,因此针对文件下载HttpUtil单独做了封装。文件下载在面对大文件时采用流的方式读写,内存中只是保留一定量的缓存,然后分块写入硬盘,因此大文件情况下不会对内存有压力。
当然,如果我们想感知下载进度,还可以使用另一个重载方法回调感知下载进度:
当然,工具类提供了一个更加抽象的方法:,此方法会请求URL,将返回内容写入到指定的OutputStream中。使用这个方法,可以更加灵活的将HTTP内容转换写出,以适应更多场景。
HttpUtil.encodeParams
对URL参数做编码,只编码键和值,提供的值可以是url附带参数,但是不能只是url- 和
HttpUtil.decodeParams
两个方法是将Map参数转为URL参数字符串和将URL参数字符串转为Map对象 - 是将URL字符串和Map参数拼接为GET请求所用的完整字符串使用
如果想设置头信息、超时、代理等信息,请见下一章节《Http客户端-HttpRequest》。