有谁能告诉我为什么会出现假块大小错误。 异常位于//>java.io.IOException: sun.net.www.http.ChunkedInputStream.processRaw(Unknown Source上的伪块大小(>>at sun.net.www.http.ChunkedInputStream.readAheadBlocking(Unknown Source)>>at sun.net.www.http.ChunkedInputStream.readAhead(Unknown Source)>>at sun.net.www.http.ChunkedInputStream.read(Unknown Source)>>at java.io.FilterInputStream.read(未知源)>>at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read((未知源) java.io.ObjectInputStream$PeekInputStream.read(Unknown (未知源)>>at java.io.ObjectInputStream.readObject0(未知源)>>at java.io.ObjectInputStream.defaultReadFields(Unknown源(>>at java.io.ObjectInputStream.readSerialData(Unknown Source)>>at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>>at (未知源(未知来源)(未知源) sun.reflect.GeneratedMethodAccessor9.invoke(Unknown源(>>at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)>>at java.lang.reflect.Method.invoke(未知源)>>at java.io.ObjectStreamClass.invokeReadObject(Unknown Source(>>at java.io.ObjectInputStream.readSerialData(Unknown Source)>>at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>>at >>at(未知源)>>at>>at(未知源)>>at。(未知源) sun.reflect.GeneratedMethodAccessor7.invoke(Unknown (未知源)>>at java.util.Hashtable.readObject(未知源)>>at java.util.Hashtable.readObject(未知源)>>at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)>>at java.lang.reflect.Method.invoke(未知源)>>at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)>>at java.io.ObjectInputStream.readSerialData(Unknown Source(>>at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>>at java.io.ObjectInputStream.readObject0(未知源)>>at java.io.ObjectInputStream.readObject0(未知源)>>at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source(未知源)>>at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source(未知源)>>at java.io.ObjectInputStream.readObject0(未知源)>>at>>at(未知源)>>at java.lang.reflect.Method.invoke(未知源)>>at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)>>at java.io.ObjectInputStream.readSerialData(Unknown Source)>>at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>>at java.io.ObjectInputStream.readObject0(未知来源)>>at>>at(未知来源)
发布于 2011-11-11 07:52:33
在代码ChunkedInputStream#processRaw的第306行中,我们有:
/*
* Extract the chunk size from the header (ignoring extensions).
*/
String header = new String(rawData, rawPos, pos-rawPos+1, "US-ASCII");
for (i=0; i < header.length(); i++) {
if (Character.digit(header.charAt(i), 16) == -1)
break;
}
try {
chunkSize = Integer.parseInt(header.substring(0, i), 16);
} catch (NumberFormatException e) {
error = true;
throw new IOException("Bogus chunk size");
}看起来服务器发送的标题不正确,我会看到确切的发送内容,并开始在那里发现问题。
发布于 2011-11-11 08:25:13
似乎有与这个问题有关的错误。据推测,这与数据编码和Inputstream使用的编码不匹配有关。请参阅下面的bug链接
id=6502503
发布于 2021-07-20 05:05:30
我经历了这个错误,因为我的Java应用程序正在与配置错误的服务器通信。
当被期望发送HTTP/1.1响应时,配置错误的服务器似乎发送了HTTP/1.0响应。这是一个错误,因为分块编码只在HTTP/1.1中引入。
通过将cURL与--http1.1或--http1.0参数一起使用,可以看出这是否是您的问题。
https://stackoverflow.com/questions/8090817
复制相似问题