1.2K Star 4.8K Fork 1.9K

GVP黄亿华 / webmagic

 / 详情

HttpClientDownloader没有对返回状态码进行判断

待办的
创建于  
2018-11-03 14:55

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;
}

}

评论 (1)

leisure 创建了任务
leisure 修改了描述
展开全部操作日志

华哥,HttpStatus.SC_INTERNAL_SERVER_ERROR表示的状态码是500,应该改为HttpStatus.SC_MULTIPLE_CHOICES

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
1162544 wangxuanbo 1578943847
Java
1
https://gitee.com/flashsword20/webmagic.git
git@gitee.com:flashsword20/webmagic.git
flashsword20
webmagic
webmagic

搜索帮助