我在上传超过 10 秒的一个音频文件时遇到问题,并出现以下错误:
WARN:oejh.HttpParser:qtp1359061041-19: badMessage: java.lang.IllegalStateException: too much data after closed for HttpChannelOverHttp@7fd0cbe{r=5,a=IDLE,uri=-}
如果我上传音频文件 <10 秒,就可以了。
我在谷歌上搜索过,但找不到任何解决方案。 有什么解决办法吗?
最佳答案
我使用的是 Cordova 3.3.0,问题出在上传上。下面的代码解决了我的问题:
var options = new FileUploadOptions();
options.fileKey="file";
options.fileName=name;
options.mimeType = "audio/amr";
options.headers = {
Connection: "close"
}
options.chunkedMode = false;
为什么 jetty 一直给我 too much data after closed
(将尽力解释)。在进行另一个连接和请求后必须关闭连接。例如,我的上传不断重复使用相同的请求并溢出请求并给我消息。所以基本上,对于每个请求,都必须关闭并打开新的请求。
为了预防起见,我对 jetty.xml
进行了更改
<Set name="outputBufferSize"><Property name="jetty.output.buffer.size" default="65536" /></Set>
<Set name="requestHeaderSize"><Property name="jetty.request.header.size" default="16384" /></Set>
<Set name="responseHeaderSize"><Property name="jetty.response.header.size" default="16384" /></Set>
关于HttpChannelOverHttp 关闭后 Jetty 数据过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22510218/