1.问题描述
在开发工作中,经常会遇到需要爬取网络数据的情况,或者是根据提供的数据交换接口,批量获取分页数据的情形。
在用jsoup批量获取分页数据的时候,就踩过因为jsoup响应数据默认值为1MB这个坑。
2.源码解读
如图1所示,其中红色框内即为jsoup的响应数据的默认值。
如图2所示,设置maxBodySize为0的时候,表示不限制响应数据的大小【unlimited】
如图3所示,可以通过Connection.maxBodySize(bytes) 设置响应数据的大小
3.踩坑填坑
如下代码段所示,设置maxBodySize(0)。
Connection con=Jsoup.connect(url);
con.header("Authorization", "Basic " + base64login)
.header("Content-Type", "application/json;charset=UTF-8")
.maxBodySize(0) //设置不限制响应数据大小
.timeout(30000)
.ignoreContentType(true);
Document doc=con.get();
logger.info(doc.body().text());
至此,踩坑后填坑完成。