是否可以忽略Http Content-Length?

时间:2014-08-12 09:51:19

标签: java crawler4j http-content-length

我正在使用Crawler4J来收集有关网站的信息。但有时我会收到以下错误:

  

信息:获取以下内容时出现异常:{someurl} [Content-Length分隔邮件正文的过早结束(预期:X;收到:Y)

(对我来说)目前尚不清楚它是否只是在X< Y,反之亦然。

异常抛出在" fetcher.PageFetchResult.java"在fetchContent中(我想在获取响应头时)。

所以我的问题是:是否有可能(通常)忽略http内容长度并获取信息?

我已经查找了crawler4j问题,但没有类似的问题。

也许stackoverflow社区的某个人知道如何解决这个问题。

非常感谢,

Hisushi

修改

抛出此异常的代码(代码段):

public boolean fetchContent(Page page) {
    try {
        page.load(entity);
        page.setFetchResponseHeaders(responseHeaders);
        return true;
    } catch (Exception e) {
        logger.log(Level.INFO, "Exception while fetching content for: " + page.getWebURL().getURL() + " [" + e.getMessage()
                + "]");
    }
    return false;
}

responseHeaders和entity为null(默认情况下):

protected HttpEntity entity = null;
protected Header[] responseHeaders = null;

1 个答案:

答案 0 :(得分:3)

Premature end of Content-Length delimited message body通常意味着在读取整个内容长度之前已断开与服务器的连接,只需在代码中包含重试机制,以便您可以再次尝试然后获取完整的正文。