jsoup踩坑之响应数据的默认值

1.问题描述

在开发工作中,经常会遇到需要爬取网络数据的情况,或者是根据提供的数据交换接口,批量获取分页数据的情形。

在用jsoup批量获取分页数据的时候,就踩过因为jsoup响应数据默认值为1MB这个坑。

2.源码解读

如图1所示,其中红色框内即为jsoup的响应数据的默认值。

在这里插入图片描述

图1 jsoup响应数据的默认值

如图2所示,设置maxBodySize为0的时候,表示不限制响应数据的大小【unlimited】

在这里插入图片描述

图2 maxBodySize为0表示不限制

如图3所示,可以通过Connection.maxBodySize(bytes) 设置响应数据的大小

在这里插入图片描述

图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());

至此,踩坑后填坑完成。

猜你喜欢

转载自blog.csdn.net/fanjianglin/article/details/105310508
今日推荐