在Windows CE的,我目前在我们从头开始实现一个简单的Web服务器的情况。主要使用这种服务器将在一到一个USB RNDIS连接。服务器通过在设备上运行的托管应用程序托管。

因此,我们紧密集成POST请求处理与交付网页。代替处理完成请求和存储POST数据,这将是过大的,当前页(通过请求)的任何发布多部分通过接收其头和其内容的流通知。该解决方案工程及普照,大家都高兴。

现在,这里的问题:在应用程序的Web界面一页允许上传一个软件更新,它可以是11,比方说,40 MB的大小。我们有各种各样的验证步骤到位,而处理这个POST请求,如基于会话cookie的权限系统。我们知道客户端是否允许上传一个软件更新,只要所有标题进行处理时,由于所述会话cookie。有什么办法能避免在(和丢弃)所有的帖子内容的阅读,使用户得到即时反馈?

我们的第一个想法是只返回报头处理后的适当的错误消息响应,然后关闭该连接,但浏览器(正确地,似乎)苦涩抱怨一个过早对端复位。

有帮助吗?

解决方案

浏览器会想,充分传递发生。围绕它的方式给用户更好的响应可能是在页面上使用AJAX调用 - 所以不是接收数据的页面,该页面应该使一个AJAX调用异步发布实际上传到另一个页面。我自己,我会做这与jQuery,但你可以放在一起的脚本,没有任何框架,这样做很容易。

其他提示

由于我最近给相关的RFC仔细一看:

HTTP 1.1锯增列一个请求头的用于那种场景的

Expect: 100-Continue

这告诉服务器来检查请求头和带回来无论是“好了,你现在就可以开始发送我的实际内容”或“对不起,不管你打算寄给我,我就不能对付它” - 响应(对于更精确的技术细节,请参见的HTTP 1.1 RFC

然而,这没有解决我的方案中,由于典型的用户代理(火狐3.6,IE 8)不利用此功能时发布的multipart / form-data的的。一只手生长助手应用程序了,但是,可能要使用此功能的。

scroll top