代码拉取完成,页面将自动刷新
HttpClientDownloader没有对返回状态码进行判断,而Site中acceptStatCode只能一个一个加。
我们一般认为[200, 300)之间的请求为成功,下面可以这样扩展HttpClientDownloader,加个状态码判断:
public class CustomHttpClientDownloader extends HttpClientDownloader {
private static final Logger LOG = LoggerFactory.getLogger(CustomHttpClientDownloader.class);
@Override
protected Page handleResponse(Request request, String charset, HttpResponse httpResponse, Task task) throws IOException {
// 调用父类处理响应
Page page = super.handleResponse(request, charset, httpResponse, task);
int code = page.getStatusCode();
// 状态码判断
if (HttpStatus.SC_OK <= code && code < HttpStatus.SC_INTERNAL_SERVER_ERROR) {
return page;
} else {
LOG.warn("下载[{}]错误, 响应码: {}, 不在给定的范围内[{}-{})", request.getUrl(), code, HttpStatus.SC_OK, HttpStatus.SC_INTERNAL_SERVER_ERROR);
page.setDownloadSuccess(false);
}
return page;
}
}