谁能告诉我为什么会发生 Bogus chunk size 错误。
swingToSvlt 方法的异常:java.io.IOException:Bogus chunk size//->java.io.IOException: 在 sun.net.www.http.ChunkedInputStream.processRaw(Unknown Source)>>at sun.net 的 Bogus chunk size .www.http.ChunkedInputStream.readAheadBlocking(Unknown Source)>>at sun.net.www.http.ChunkedInputStream.readAhead(Unknown Source)>>at sun.net.www.http.ChunkedInputStream.read(Unknown Source)>>在 java.io.FilterInputStream.read(Unknown Source)>>at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)>>at java.io.ObjectInputStream$PeekInputStream.read(Unknown Source) >>在 java.io.ObjectInputStream$PeekInputStream.readFully(未知来源)>>在 java.io.ObjectInputStream$BlockDataInputStream.readUTFBody(未知来源)>>在 java.io.ObjectInputStream$BlockDataInputStream。readUTF(未知源)>>在 java.io.ObjectInputStream.readString(未知源)>>在 java.io.ObjectInputStream.readObject0(未知源)>>在 java.io.ObjectInputStream.defaultReadFields(未知源)>>在java.io.ObjectInputStream.readSerialData(Unknown Source)>>at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>>at java.io.ObjectInputStream.readObject0(Unknown Source)>>at java.io.ObjectInputStream.readObject( Unknown Source)>>at java.util.ArrayList.readObject(Unknown Source)>>at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)>>at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)>>at java. lang.reflect.Method.invoke(未知来源)>>在 java.io.ObjectStreamClass.invokeReadObject(未知来源)>>在 java.io.ObjectInputStream。读取串行数据(未知来源)>>在 java.io.ObjectInputStream.readOrdinaryObject(未知来源)>>在 java.io.ObjectInputStream.readObject0(未知来源)>>在 java.io.ObjectInputStream.readObject(未知来源)>>在java.util.Hashtable.readObject(Unknown Source)>>at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)>>at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)>>at java.lang.reflect.Method。调用(未知源)>>at java.io.ObjectStreamClass.invokeReadObject(未知源)>>at java.io.ObjectInputStream.readSerialData(未知源)>>at java.io.ObjectInputStream.readOrdinaryObject(未知源)>>at java.io.ObjectInputStream.readObject0(Unknown Source)>>at java.io.ObjectInputStream.readObject(Unknown Source)ObjectInputStream.readOrdinaryObject(Unknown Source)>>at java.io.ObjectInputStream.readObject0(Unknown Source)>>at java.io.ObjectInputStream.readObject(Unknown Source)>>at java.util.Hashtable.readObject(Unknown Source)> >在 sun.reflect.GeneratedMethodAccessor7.invoke(未知来源)>>在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)>>在 java.lang.reflect.Method.invoke(未知来源)>>在 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(Unknown Source)> >在 java.io.ObjectInputStream.readObject(未知来源)ObjectInputStream.readOrdinaryObject(Unknown Source)>>at java.io.ObjectInputStream.readObject0(Unknown Source)>>at java.io.ObjectInputStream.readObject(Unknown Source)>>at java.util.Hashtable.readObject(Unknown Source)> >在 sun.reflect.GeneratedMethodAccessor7.invoke(未知来源)>>在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)>>在 java.lang.reflect.Method.invoke(未知来源)>>在 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(Unknown Source)> >在 java.io.ObjectInputStream.readObject(未知来源)ObjectInputStream.readObject0(Unknown Source)>>at java.io.ObjectInputStream.readObject(Unknown Source)>>at java.util.Hashtable.readObject(Unknown Source)>>at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)> >在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)>>在 java.lang.reflect.Method.invoke(未知来源)>>在 java.io.ObjectStreamClass.invokeReadObject(未知来源)>>在 java.io。 ObjectInputStream.readSerialData(Unknown Source)>>at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>>at java.io.ObjectInputStream.readObject0(Unknown Source)>>at java.io.ObjectInputStream.readObject(Unknown Source)ObjectInputStream.readObject0(Unknown Source)>>at java.io.ObjectInputStream.readObject(Unknown Source)>>at java.util.Hashtable.readObject(Unknown Source)>>at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)> >在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)>>在 java.lang.reflect.Method.invoke(未知来源)>>在 java.io.ObjectStreamClass.invokeReadObject(未知来源)>>在 java.io。 ObjectInputStream.readSerialData(Unknown Source)>>at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>>at java.io.ObjectInputStream.readObject0(Unknown Source)>>at java.io.ObjectInputStream.readObject(Unknown Source)在 sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)>>at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)>>at java.lang.reflect.Method.invoke(Unknown Source)>>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(Unknown Source)>>在 java.io.ObjectInputStream.readObject(未知来源)在 sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)>>at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)>>at java.lang.reflect.Method.invoke(Unknown Source)>>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(Unknown Source)>>在 java.io.ObjectInputStream.readObject(未知来源)>在 java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>>at java.io.ObjectInputStream.readObject0(Unknown Source)>>at java.io.ObjectInputStream.readObject(Unknown Source)>在 java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>>at java.io.ObjectInputStream.readObject0(Unknown Source)>>at java.io.ObjectInputStream.readObject(Unknown Source)
问问题
9859 次
3 回答
4
从代码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-11T07:52:33.960 回答
1
似乎有与此问题相关的错误。据推测,这与数据编码和 Inputstream 使用的编码不匹配有关。请参阅下面的错误链接
于 2011-11-11T08:25:13.170 回答
0
我遇到此错误是因为我的 Java 应用程序正在与配置错误的服务器通信。
似乎配置错误的服务器在预期发送 HTTP/1.1 响应时发送了 HTTP/1.0 响应。这是一个错误,因为分块编码仅在 HTTP/1.1 中引入。
--http1.1
您可以通过使用带有or--http1.0
参数的 cURL 来查看这是否是您的问题。
于 2021-07-20T05:05:30.863 回答