java.io.IOException:虚假块大小

发布于 2024-12-15 08:09:39 字数 2345 浏览 7 评论 0原文

谁能告诉我为什么会出现Bogus chunk size错误。

<块引用>

swingToSvlt 方法出现异常:java.io.IOException:Bogus chunk size//->java.io.IOException:Bogus chunk size 在 sun.net.www.http.ChunkedInputStream.processRaw(未知来源)>> 在 sun.net.www.http.ChunkedInputStream.readAheadBlocking(未知来源)>> 在 sun.net.www.http.ChunkedInputStream .readAhead(来源不明)>>at sun.net.www.http.ChunkedInputStream.read(来源不明)>>at java.io.FilterInputStream.read(未知来源)>>在 sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(未知来源)>>在 java.io.ObjectInputStream$PeekInputStream.read(未知来源)>>at java.io.ObjectInputStream$PeekInputStream.readFully(未知来源)>>at 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(未知来源)>>在 java.io.ObjectInputStream.readOrdinaryObject(未知来源)>>在 java.io.ObjectInputStream.readObject0(未知来源) >> 在 java.io.ObjectInputStream.readObject(来源未知)>> 在 java.util.ArrayList.readObject(未知)来源)>>在 sun.reflect.GenerateMethodAccessor9.invoke(来源未知)>>在 sun.reflect.DelegatingMethodAccessorImpl.invoke(来源未知)>>在 java.lang.reflect.Method.invoke(来源未知)来源)>>at java.io.ObjectStreamClass.invokeReadObject(未知来源)>>at java.io.ObjectInputStream.readSerialData(未知来源)>>在 java.io.ObjectInputStream.readOrdinaryObject(未知来源)>>在 java.io.ObjectInputStream.readObject0(未知来源)>>在 java.io.ObjectInputStream.readSerialData(未知来源)>> io.ObjectInputStream.readObject(未知来源)>>at java.util.Hashtable.readObject(未知来源)>>at sun.reflect.GenerateMethodAccessor7.invoke(来源未知)>>at sun.reflect.DelegatingMethodAccessorImpl.invoke(来源未知)>>at java.lang.reflect.Method.invoke(来源未知)>>at java.io.ObjectStreamClass.invokeReadObject(来源未知)>>at java.io.ObjectInputStream.readSerialData(未知来源)>>在 java.io.ObjectInputStream.readOrdinaryObject(未知来源)>>在 java.io.ObjectInputStream.readObject0(未知来源)>>在 java.io.ObjectInputStream.readSerialData(未知来源)>> io.ObjectInputStream.readObject(来源未知)

Can any one tell me why the Bogus chunk size error occurs.

Exception at the swingToSvlt method:java.io.IOException:Bogus chunk size//->java.io.IOException: Bogus chunk size
at 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(Unknown Source)>>at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)>>at java.io.ObjectInputStream$PeekInputStream.read(Unknown Source)>>at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)>>at java.io.ObjectInputStream$BlockDataInputStream.readUTFBody(Unknown Source)>>at java.io.ObjectInputStream$BlockDataInputStream.readUTF(Unknown Source)>>at java.io.ObjectInputStream.readString(Unknown Source)>>at java.io.ObjectInputStream.readObject0(Unknown Source)>>at java.io.ObjectInputStream.defaultReadFields(Unknown Source)>>at 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(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)>>at java.io.ObjectInputStream.readObject(Unknown Source)>>at 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.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)>>at java.io.ObjectInputStream.readObject(Unknown Source)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

离笑几人歌 2024-12-22 08:09:39

从代码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");
}

看起来服务器正在发送不正确的标头,我会准确地看到正在发送的内容,并开始在那里找到问题。

From the code ChunkedInputStream#processRaw, line 306, we have:

/*
 * 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");
}

It looks like the server is sending incorrect headers, I'd see exactly what is being sent, and start to find the problem there.

猫弦 2024-12-22 08:09:39

似乎存在与此问题相关的错误。推测这与数据的编码和输入流使用的编码不匹配有关。请参阅下面的错误链接

https://bugs.java.com/bugdatabase/view_bug?bug_id =6502503

There seemed to be bug related to this issue. Supposedly this is related to the mismatch in the encoding of the data and the encoding used by the Inputstream. Refer the bug link below

https://bugs.java.com/bugdatabase/view_bug?bug_id=6502503

鹿港巷口少年归 2024-12-22 08:09:39

我遇到此错误是因为我的 Java 应用程序正在与配置错误的服务器进行通信。

看来配置错误的服务器在预期发送 HTTP/1.1 响应时发送了 HTTP/1.0 响应。这是一个错误,因为分块编码仅在 HTTP/1.1 中引入。

您可以通过使用带有 --http1.1--http1.0 参数的 cURL 来查看这是否是您的问题。

I experienced this error because my Java application was communicating with a misconfigured server.

It seems the misconfigured server sent an HTTP/1.0 response when it was expected to send an HTTP/1.1 response. This is an error because chunked encoding was only introduced in HTTP/1.1.

You can see if this is your problem by using cURL with the --http1.1 or --http1.0 arguments.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文