首页 > 代码库 > Stream ended unexpectedly

Stream ended unexpectedly

由于有个微信平台的项目需求,就去看了一下微信公众平台的接口,发现微信平台上传下载附件需要使用ucrl命令,所以在LINUX上试了一下该命令:

curl -F @123.image http://.......

服务端接受附件代码是自己写的,反正都是form表单提交


后来查了一下资料,发现,用Java调用curl命令,还是挺麻烦的,不就上传个附件吗,还不如自己模拟客户端上传。接下来就写了一天模拟客户端上传的代码。

测试后发现,上传不 了,服务端报了:Processing of multipart/form-data request failed. Stream ended unexpectedly.


F,继续调试,改了几遍还是这样,google了一下,发现很多人是因为页面突然关闭,导致文件没有上传完,或文件太大,所以服务端就报了流意外的结束。我心想,我用的是代码,都是传输完才close的,不可能啊,而且文件才几K,我索性把close都注释掉测试,还是老样子。我怀疑是不是服务端代码问题,再写了个简单的上传页试了一下,可以啊,页面跟curl都没有问题,那服务端代码应该没问题了,继续关注模拟代码。我觉得应该是我们的报文哪里不对,所以读取的时候就报错了,看了下apach包的源码,有可能是由于流转换成报文的时候监测到报文不全所导致的,然后我用火狐调试查看了一下http请求信息和我们模拟的有什么不同,开始还真没看出什么问题,后台打印一下,才知道,原来少了两个换行符号。妈呀,真TM郁闷。




就是这里的结束边界前后少了\r\n.

Stream ended unexpectedly