httpcomponents-client-4.2.1 异常

aaabbbccc-111 发布于 2012/08/13 18:45
阅读 3K+
收藏 0

在使用httpcomponents-client-4.2.1时,任务运行一段时间就抛出以下例外,实在找不到原因,请高手不吝赐教,万分感谢!

堆栈错误:

org.apache.http.TruncatedChunkException: Truncated chunk ( expected size: 47956; actual size: 35656)
        at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:186)
        at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:138)
        at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
        at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
        at java.io.InputStreamReader.read(InputStreamReader.java:167)
        at java.io.Reader.read(Reader.java:123)
        at org.apache.http.util.EntityUtils.toString(EntityUtils.java:224)
        at org.apache.http.util.EntityUtils.toString(EntityUtils.java:248)
        at com.bw30.bjappmanage.common.service.impl.HttpClientServiceImpl$2.handleResponse(HttpClientServiceImpl.java:206)
        at com.bw30.bjappmanage.common.service.impl.HttpClientServiceImpl$2.handleResponse(HttpClientServiceImpl.java:1)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1070)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1044)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1035)
        at com.bw30.bjappmanage.common.service.impl.HttpClientServiceImpl.getHttpEntityText(HttpClientServiceImpl.java:214)
        at com.bw30.bjappmanage.task.data.crawl.LiquGetThread.run(LiquGetThread.java:73)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)


加载中
0
鉴客
鉴客
不要抓得太狠了,这个跟程序无关,对方网站的行为
0
情天大圣
情天大圣
你自己有没有分析下原因呢,可能是网络环境问题呢!
0
疯狂的艺术家
疯狂的艺术家

org.apache.http.TruncatedChunkException: Truncated chunk ( expected size: 47956; actual size: 35656)

不一定能解决你的问题,但是从异常分析 你抓取的url 是Transfer-Encoding:chunked ,有可能是抓取的时候丢包了,导致expected size 和actual size 不一致。

我也不是高手,你不要在任何社区发那样的留言,要淡定,尊重别人。

aaabbbccc-111
aaabbbccc-111
惭愧! 在异步抓取的时候就有这个例外,同步执行的时候就没问题。请教您有什么解决方案吗,谢谢!
0
哪一天
哪一天
时序问题。原因:用的是线程池处理方式,那么就存在数据同步问题,你自己都说了同步执行时没有问题,说明同步执行时时序正好能对的上,数据接收和解析正常,异步执行时你抓包的时候恰好数据丢了一些。你可以多抓几次包,看每次丢包的数据量是否都一样,可以初步判断是否是异步执行时丢了数据。然后再做进一步分析,不太清楚你代码的使用场景,仅从异常日志上分析不了具体原因。
0
bdceo
bdceo
我开了 两个tomcat,分开抓两个web站的内容,一个正常,一个偶尔会出现 org.apache.http.TruncatedChunkException: Truncated chunk这个异常,单独跑的时候,貌似没遇见过,所在的网络环境也不是太好,这个异常貌似是丢包的一个提示吧,也没解决,只是异常后捕获一下,再继续抓……期待更多人讨论交流
返回顶部
顶部